## first hash 부터 last hash 까지 commit log 를 보여줌 git log <first_commit_hash>~..<last_commit_hash>
## commit hash 의 log 만 보여줌 git log <commit_hash>~..<commit_hash>
## commit hash 의 commit 내용을 보여줌 git show <commit_hash>
## log stats 를 조회한다 git log --stat
commit 전에 변경내역을 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
## unstaged changes 와 비교한다 ## add 로 추가되지 않은 변경된 소스코드를 보여준다 ## working directory 와 Index 를 비교 git diff
git diff filename
## staged changes 와 비교한다 ## add 로 추가된 소스코드를 커밋로그 첫번째(HEAD)와 비교해준다 ## index 와 HEAD 를 비교 git diff --staged git diff --cached
## working directory 와 HEAD 를 비교 git diff HEAD
## working directory 와 HEAD^ 를 비교 git diff HEAD^
tracked files 에서 삭제
1
git rm filename
file 이름 변경
1
git mv oldfile newfile
git 에서 파일 무시
.gitignore 파일에 등록한다
변경사항 원복
file 원복
1 2 3 4 5 6
## revert unstaged changes git checkout filename
## revert staged changes git reset HEAD filename git reset HEAD -p
최근 commit 수정
1 2 3 4 5
## overhead commit 을 변경한다 ## commit hash 가 바뀜 git commit --amend -a ## HEAD 의 commit 메시지만 변경 한다 git commit --amend -m "CHANGE-COMMIT-MESSAGE"
마지막 commit 으로 원복
1 2 3 4 5 6 7 8 9
## 가장 최근 commit 으로 원복 git revert HEAD
## 되돌릴 COMMIT-ID 로 Revert 한다 git revert COMMIT-ID ## 또는 ## HEAD~3 최근 3개 전의 commit 으로 Revert 한다 git revert --no-commit HEAD~3 git commit -m "Revert Comit A,B,C"
Branch
새로운 브랜치 만들기
1 2 3 4 5 6 7 8
## NEW-BRANCH-NAME git branch NEW-BRANCH-NAME
## 브랜치로 전환 git checkout NEW-BRANCH-NAME
#-b 옵션은 현재 branch 를 복사해서 NEW-BRANCH-NAME 으로 만들고 switch git checkout -b NEW-BRANCH-NAME
## 원격 저장소에서 다운만 한다 (merge 는 따로 해야 한다) git fetch REMOTE-NAME ## 가져온 정보를 로컬브랜치와 비교 하고 직접 병합 해준다 ## git diff HEAD origin/master ## git log --decorate --all --oneline ## git merge origin/master
## 모든 리모트 정보를 업데이트 한다 ## fetch 수행됨 git remote update
prune
리모트 저장소에 삭제된 브랜치도 로컬 저장소에서 삭제한다 local 에서 remote 를 ref 하는 것 중 유효하지 않은 것을 제거
1 2 3 4 5 6 7 8 9 10 11 12
## 새로 추가되었거나 삭제된 리모트 브랜치의 정보를 최신화 한다 git remote prune REMOTE-NAME
## overhead commit 으로 Reset 한다 git reset --hard git reset --hard HEAD
## 되돌릴 COMMIT-ID 로 Reset 한다 git reset --hard COMMIT-ID ## 또는 ## 바로 이전 commit 으로 Reset 한다 git reset --hard HEAD^ ## 또는 ## HEAD~3 최근 3개 전의 commit 으로 Reset 한다 git reset --hard HEAD~3
## 바로 전으로 reset 한다 git reset --hard HEAD~
## 원격저장소에 안전하게 넣는다 git push --force-with-lease ## 또는 ## 강제로 원격저장소에 넣는다 git push --force
커밋 해쉬 정보
1 2 3
git show-ref HEAD git show-ref HEAD -s git show-ref master
Patch
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
## patch 를 적용한다 git am <patch1> <patch2> ## patch 를 취소한다 git am --abort
## conflicts 발생시 하나 이상의 patch 를 적용한다 git am -3 <patch1> <patch2> ...
## conflicts 해결 후에 patch 를 계속 한다 git am --continue
## overhead commit 으로 부터 patch 를 생성한다 git format-patch HEAD~
## n 개 전의 commit 으로 부터 patch 를 생성한다 git format-patch HEAD~n
git config
.gitignore 수정 적용하기
.gitignore 로 git 에서 제외 시킬 수 있는데 .gitignore 수정시에 다시 적용을 해줘야 한다