| Command |
Option |
Argument |
Description |
| git |
--version |
|
git 버전 확인 |
| git config |
--global |
user.name "본인 이름" |
사용자 이름 설정 |
| --global |
user.email "본인 이메일" |
사용자 이메일 설정 |
| |
user.name |
사용자 이름 확인 |
| |
user.email |
사용자 이메일 확인 |
| --global |
init.defaultBranch "기본 브랜치명" |
기본 브랜치명 설정 |
| --global |
init.defaultBranch |
기본 브랜치명 확인 |
| --list |
|
전체 설정 정보 확인 |
| git init |
|
|
git 저장소 등록 |
| git clone |
|
<url> |
Remote 저장소로부터 git 저장소 복사 |
| git status |
|
|
파일의 상태를 보여줌. 현재 Branch 조회. |
| -s |
|
파일의 상태를 요약하여 보여줌 |
| git add |
|
"파일이름" |
해당 파일을 Staging |
| |
. |
모든 파일을 Staging |
| git diff |
|
|
Working 디렉토리의 파일과 Staging 영역의 파일의 변경 사항을 보여줌 |
| --staged |
|
Staging 영역의 파일과 GIT 저장소 파일의 변경 사항을 보여줌 |
| --color-words |
|
변경 사항을 단어로 구분 |
| --word-diff |
|
변경 사항을 괄호로 표시하여 단어로 구분 |
| git commit |
-m |
"메시지 내용" |
Staging Area의 파일을 Commit |
| -am |
"메시지 내용" |
Add와 Commit을 한번에 실행(단, Untracked 파일이 없을 때만) |
| --amend |
|
최근 Commit 수정 |
| --amend -m |
"메시지 내용" |
메시지 내용을 변경하며, 최근 Commit 수정 |
| git log |
|
|
Commit의 히스토리 조회 |
| -p |
|
각 Commit의 diff 결과를 보여줌 |
| -[n] |
|
최근 n개만 조회 |
| --oneline |
|
한 줄 씩 조회 |
| --stat |
|
간단한 통계 조회 |
| -all |
|
전체 조회 |
| --graph |
|
그래프로 조회 |
| git reset |
--soft |
<돌아갈 Commit의 Hash> |
과거 Commit으로 되돌아가면서, 이후의 Commit은 모두 삭제한다. Staging Area와 Working Directory는 기존의 Commit의 상태로 유지된다. |
| --mixed(default) |
<돌아갈 Commit의 Hash> |
과거 Commit으로 되돌아가면서, 이후의 Commit은 모두 삭제한다. Working Directory만 기존의 Commit의 상태로 유지된다. |
| --hard |
<돌아갈 Commit의 Hash> |
과거 Commit으로 되돌아가면서, 이후의 변경 이력 및 Commit은 모두 삭제한다. Staging Area와 Working Directory 모두 돌아간 Commit의 상태로 바뀐다. |
| |
HEAD~n |
n개 전 Commit으로 되돌아간다. |
| |
HEAD^ |
바로 이전 Commit으로 되돌아간다. |
| git revert |
|
<되돌릴 Commit의 Hash> |
특정 Commit의 반대되는 Commit을 만들어낸다. |
| --no-commit |
<되돌릴 Commit의 Hash> |
Commit을 하지 않고 Revert한다. |
| git branch |
|
<Branch 이름> |
Branch를 생성한다. |
| -d |
<Branch 이름> |
Branch를 삭제한다. *Merge가 끝난 Branch는 삭제하는 습관을 가지자. |
| -D |
<Branch 이름> |
Branch에 다른 Branch에 적용되지 않은 Commit이 있는 경우(Merge되지 않은 Commit이 있는 경우) 강제로 삭제한다. |
| -m |
<기존 Branch 이름> <새 Branch 이름> |
Branch 이름을 변경한다. |
| |
|
Branch 목록 조회 |
| -v |
|
마지막 Commit 내역과 함께 Branch 목록 조회 |
| -r |
|
Remote 저장소의 Branch 목록 조회 |
| -a |
|
전체 Branch 목록 조회 |
| --merged |
|
현재 Checkout한 Branch에 Merge된 Branch조회 |
| --no-merged |
|
현재 Checkout한 Branch에 Merge가 되지 않은 Branch조회 |
| git checkout |
|
<이동할 Branch 이름> |
Branch를 이동한다. Checkout된 Branch에서 새로운 Branch가 분기된다. *GIT 2.23 버전부터는 git switch를 사용. |
| -b |
<이동할 Branch 이름> |
Branch를 생성과 동시에 이동한다. *GIT 2.23 버전부터는 git switch -c를 사용. |
| git merge |
|
<Merge할 Branch 이름> |
현재 위치한 Branch(Checkout된)에 해당 Branch를 가져와 Merge한다. |
| --abort |
|
Merge를 중단한다. |
| git rebase |
|
<Rebase할 Branch 이름> |
현재 Branch를 해당 Branch에 이어붙인다. |
| --abort |
|
Rebase를 중단한다. |
| --continue |
|
Rebase 충돌이 모두 해결될 때까지 진행한다. |
| git remote |
|
|
Remote 저장소 목록 조회 |
| -v |
|
Remote 저장소의 이름과 주소 확인 |
| |
add <저장소 이름> <url> |
로컬 저장소에 Remote 저장소를 추가한다. 추가적으로 git pull을 하면 git clone과 같은 동작이다. |
| |
remove <저장소 이름> |
로컬 저장소를 Remote 저장소와 연결을 끊는다. |
| git push |
-u(--set-upstream) |
<저장소 이름> <branch 이름> |
Remote 저장소의 Branch를 연결하고, 로컬 저장소의 Commit을 Remote 저장소로 밀어올린다. 처음 한번만 하면 된다(Tracking Connection). |
| |
<저장소 이름> <branch 이름> |
로컬 저장소의 Commit을 Remote 저장소로 밀어올린다. Tracking Connection 이후에는, git push만 해도 적용된다. |
| --force |
|
pull이 되지않는 경우에도, 강제로 push한다(Remote 저장소의 Commit들이 덮어씌어지므로 주의). |
| git pull |
|
<저장소 이름> <branch 이름> |
Remote 저장소의 Commit을 로컬 저장소로 당겨온다. Tracking Connection 이후에는, git pull만 해도 적용된다. |
| --no-rebase |
|
merge 방식으로 pull한다. |
| --rebase |
|
rebase 방식으로 pull한다 |
| git fetch |
|
<저장소 이름> <branch 이름> |
pull과는 다르게 당겨온 Commit을 병합하지 않는다. git merge까지 완료해야 git pull과 같은 Command가 된다. |
댓글