Git Commands
Git 명령어
- Git에서 제공하는 명령어들은 아래와 같다.
Category |
Commands |
Setup and Config | |
Getting and Creating Projects | |
Basic Snapshotting | |
Branching and Merging | |
Sharing and Updating Projects | |
Inspection and Comparison | |
Patching | |
Debugging | |
External Systems | |
Administration | |
Server Admin | |
Plumbing Commands |
|
* Legend (범례)
. | - Current Working Directory (현재 폴더) |
<expr> | - Expression |
[ ] | - Option (선택 기입사항) |
a | b | - Or (a와 b 중 택일) |
git (URL)
git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|-P|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[--super-prefix=<path>] [--config-env=<name>=<envvar>]
<command> [<args>]
- (description about git command)
Option | Description |
--version -v |
- Git Suite Version을 출력한다. - git --version 명령어 (또는 -v 옵션)는 내부적으로 git version 으로 변환되어 실행된다. - --version 옵션과 --help 옵션이 병행될 경우, --help 옵션이 먼저 수행된다. |
--help -h |
- Synopsis와 빈번히 사용되는 Git 명령어들의 리스트를 출력한다. - --all 또는 -a 옵션을 부여할 경우, 모든 명령어가 출력된다. - 어떠한 Git 명령어에 이 옵션을 부여할 경우, 해당 명령어에 대한 Manual Page를 출력한다. - git --help 명령어 (또는 -h 옵션)는 내부적으로 git help 으로 변환되어 실행된다. |
-C <path> | - Current Working Directory 대신, <path>에 명시한 곳에서 Git을 실행한다. - 다수의 Non-Absolute Path에 대한 -C 옵션을 부여할 경우, Path는 선행된 -C <path>에 Relative하다. - -C ""와 같이, <path>가 비어있을 경우, Current Working Directory는 변경되지 않은 상태를 유지한다. - --git-dir과 --work-tree 옵션이 <path>에 주어질 수 있고, <path>는 -C 옵션으로 발생한 작업 결과에 Relative하다. |
-c <name>=<value> | |
--config-env=<name>=<envvar> | |
--exec-path[=<path>] | |
--html-path | |
--man-path | |
--info-path | |
--paginate -p |
|
--no-paper -P |
|
--git-gir=<path> | |
--work-tree=<path> | |
--namespace=<path> | |
--super-prefix=<path> | |
--bare | |
--no-replace-objects | |
--literal-pathspecs | |
--glob-pathspecs | |
--noglob-pathspecs | |
--icase-pathspecs | |
--no-optional-locks | |
--list-cmds=group[,group..] |
git config (URL)
git config [<file-option>] [--type=<type>] [--fixed-value] [--show-origin] [--show-scope] [-z|--null] <name> [<value> [<value-pattern>]]
git config [<file-option>] [--type=<type>] --add <name> <value>
git config [<file-option>] [--type=<type>] [--fixed-value] --replace-all <name> <value> [<value-pattern>]
git config [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] --get <name> [<value-pattern>]
git config [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] --get-all <name> [<value-pattern>]
git config [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] [--name-only] --get-regexp <name-regex> [<value-pattern>]
git config [<file-option>] [--type=<type>] [-z|--null] --get-urlmatch <name> <URL>
git config [<file-option>] [--fixed-value] --unset <name> [<value-pattern>]
git config [<file-option>] [--fixed-value] --unset-all <name> [<value-pattern>]
git config [<file-option>] --rename-section <old-name> <new-name>
git config [<file-option>] --remove-section <name>
git config [<file-option>] [--show-origin] [--show-scope] [-z|--null] [--name-only] -l | --list
git config [<file-option>] --get-color <name> [<default>]
git config [<file-option>] --get-colorbool <name> [<stdout-is-tty>]
git config [<file-option>] -e | --edit
- Global Option을 설정한다.
git help (URL)
git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<guide>]
git help [-g|--guides]
git help [-c|--config]
- Git에 대한 도움말을 출력한다.
Option | Description |
--all -a |
- 모든 명령어들에 대한 정보를 Standard Output에 출력한다. |
--verbose (Default) |
- -all 옵션을 사용할 때, 명령어에 대한 설명을 출력한다. |
--no-verbose | - -all 옵션을 사용하여 정보를 출력할 때, 명령어에 대한 설명을 출력하지 않는다. |
--external-commands | - -all 옵션을 사용하여 정보를 출력할 때, External git-* 명령어를 포함시킨다. |
--no-external-commands | - -all 옵션을 사용하여 정보를 출력할 때, External git-* 명령어를 포함하지 않는다. |
--aliases | - -all 옵션을 사용하여 정보를 출력할 때, Configured Alias들을 포함시킨다. |
--no-aliases | - -all 옵션을 사용하여 정보를 출력할 때, Configured Alias들을 포함시키지 않는다. |
--info -i |
- 명령어 메뉴얼 페이지를 info 포맷으로 출력한다. |
--man -m |
- 명령어 메뉴얼 페이지를 man 포맷으로 출력한다. |
--web -w |
- 명령어 메뉴얼 페이지를 HTML 포맷으로 웹 브라우저에 출력한다. |
<command> | |
<guide> | |
--guides -g |
|
--config -c |
git init (URL)
git init [-q | --quiet] [--bare] [--template=<template-directory>]
[--separate-git-dir <git-dir>] [--object-format=<format>]
[-b <branch-name> | --initial-branch=<branch-name>]
[--shared[=<permissions>]] [<directory>]
- Git Repository(저장소)를 생성한다.
--quiet -q |
- 에러 및 경고 메시지를 제외한 모든 메시지를 출력하지 않는다. |
--bare | - Bare Repository를 생성한다. |
--template=<template-directory> | |
--separate-git-dir <git-dir> | |
--object-format=<format> | |
-b <branch-name> | |
--initial-branch=<branch-name> | |
--shared[=<permissions>] | |
<directory> |
* Additional Instruction
$ rm -r .git
- .git 폴더가 삭제되고 Git 로컬 저장소 지정을 해제한다.
git clone (URL)
git clone [--template=<template-directory>]
[-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]
[-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>]
[--dissociate] [--separate-git-dir <git-dir>]
[--depth <depth>] [--[no-]single-branch] [--no-tags]
[--recurse-submodules[=<pathspec>]] [--[no-]shallow-submodules]
[--[no-]remote-submodules] [--jobs <n>] [--sparse] [--[no-]reject-shallow]
[--filter=<filter> [--also-filter-submodules]] [--] <repository>
[<directory>]
- Remote Repository의 모든 내용을 Local Repository로 복사해 가져온다.
git add (URL)
git add [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p]
[--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]] [--sparse]
[--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--renormalize]
[--chmod=(+|-)x] [--pathspec-from-file=<file> [--pathspec-file-nul]]
[--] [<pathspec>…]
- 생성한 파일을 Git 이 추적 가능하도록 Staging Area(Index)에 추가한다.
- 파일 자체를 생성하는 명령은 아니다.
git status (URL)
git status [<options>…] [--] [<pathspec>…]
- Working Tree의 상태 정보를 출력한다.
git commit (URL)
git commit [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]
[--dry-run] [(-c | -C | --squash) <commit> | --fixup [(amend|reword):]<commit>)]
[-F <file> | -m <msg>] [--reset-author] [--allow-empty]
[--allow-empty-message] [--no-verify] [-e] [--author=<author>]
[--date=<date>] [--cleanup=<mode>] [--[no-]status]
[-i | -o] [--pathspec-from-file=<file> [--pathspec-file-nul]]
[(--trailer <token>[(=|:)<value>])…] [-S[<keyid>]]
[--] [<pathspec>…]
- 변경된 파일을 저장소에 제출한다.
git branch (URL)
git branch [--color[=<when>] | --no-color] [--show-current]
[-v [--abbrev=<n> | --no-abbrev]]
[--column[=<options>] | --no-column] [--sort=<key>]
[--merged [<commit>]] [--no-merged [<commit>]]
[--contains [<commit>]] [--no-contains [<commit>]]
[--points-at <object>] [--format=<format>]
[(-r | --remotes) | (-a | --all)]
[--list] [<pattern>…]
git branch [--track[=(direct|inherit)] | --no-track] [-f]
[--recurse-submodules] <branchname> [<start-point>]
git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
git branch --unset-upstream [<branchname>]
git branch (-m | -M) [<oldbranch>] <newbranch>
git branch (-c | -C) [<oldbranch>] <newbranch>
git branch (-d | -D) [-r] <branchname>…
git branch --edit-description [<branchname>]
- Branch를 생성하고 제거하거나 조회한다.
- git bash 상에서 브랜치명 앞에 "*" (asterisk) 표시는 지금 작업 중인 브랜치임을 의미한다.
git checkout (URL)
git checkout [-q] [-f] [-m] [<branch>]
git checkout [-q] [-f] [-m] --detach [<branch>]
git checkout [-q] [-f] [-m] [--detach] <commit>
git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new-branch>] [<start-point>]
git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <pathspec>…
git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] --pathspec-from-file=<file> [--pathspec-file-nul]
git checkout (-p|--patch) [<tree-ish>] [--] [<pathspec>…]
- Branch를 Switching하거나 Working Tree File들을 복구한다.
git merge (URL)
git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
[--no-verify] [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
[--[no-]allow-unrelated-histories]
[--[no-]rerere-autoupdate] [-m <msg>] [-F <file>]
[--into-name <branch>] [<commit>…]
git merge (--continue | --abort | --quit)
- 현재 작업중인 Branch에 다른 Branch의 내용을 병합한다.
git fetch (URL)
git fetch [<options>] [<repository> [<refspec>…]]
git fetch [<options>] <group>
git fetch --multiple [<options>] [(<repository> | <group>)…]
git fetch --all [<options>]
- Remote Repository로부터 Local Repository로 소스를 가져온다.
git pull (URL)
git pull [<options>] [<repository> [<refspec>…]]
- git remote 명령을 통해 서로 연결된 Remote Repository의 최신 내용을 Local Repository로 가져옴과 동시에 병합한다.
(git fetch + git merge)
- git push 에 반대되는 기능의 명령어이다.
git push (URL)
git push [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
[--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-v | --verbose]
[-u | --set-upstream] [-o <string> | --push-option=<string>]
[--[no-]signed|--signed=(true|false|if-asked)]
[--force-with-lease[=<refname>[:<expect>]] [--force-if-includes]]
[--no-verify] [<repository> [<refspec>…]]
- Local Repository의 내용을 Remote Repository로 전송한다.
git remote (URL)
git remote [-v | --verbose]
git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <name> <URL>
git remote rename [--[no-]progress] <old> <new>
git remote remove <name>
git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
git remote set-branches [--add] <name> <branch>…
git remote get-url [--push] [--all] <name>
git remote set-url [--push] <name> <newurl> [<oldurl>]
git remote set-url --add [--push] <name> <newurl>
git remote set-url --delete [--push] <name> <URL>
git remote [-v | --verbose] show [-n] <name>…
git remote prune [-n | --dry-run] <name>…
git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…]
- Remote Repository를 관리한다.
git log (URL)
git log [<options>] [<revision-range>] [[--] <path>…]
- Commit Log를 출력한다.
Reference: git-scm; Git - Documentation; 2022.04.25 검색 (URL)