Developer/git

GIT 상황별 명령어 정리

hadaney 2021. 1. 27. 23:23

untracked 파일 변경사항 되돌리기

= modified file( not add to staging )을 unmodified file 로 되돌리기

git checkout sample.txt 
git checkout .          ## working directory 에서 수정한 모든 파일을 현재 버전으로 되돌리기

파일 스테이징 취소

= git add 로 staging area 에 등록된 변경사항 삭제 = 언스테이징

git reset sample.txt 
git reset .            ## 모든 add 변경사항 되돌리기

커밋한 파일 변경사항 되돌리기

git reset 4baf97e         ## 커밋 취소. add(index) 취소
git reset --soft 4baf97e  ## 커밋 취소 
git reset --hard 4baf97e  ## 커밋 취소. add(index) 취소. 파일(working dir) 취소. 

git reset --soft HEAD^    ## 마지막 커밋 취소

커밋 메세지만 변경

git commit --amend -m "change commit message"

여러 커밋 변경&합치기

git rebase -i HEAD~(가장 최신 커밋부터 수정하고 싶은 커밋의 개수) 

## in interactive shell 에 접속
## pick - 해당 커밋을 사용함 
## s (squash) - 합치기 (합쳐지는 커밋의 로그가 살아있음) 
## f (fixup) - 합치기 (최신 커밋만 로그가 남음)

푸시한 커밋 변경(되돌리기)

git rebase -i BRACN_NAME HEAD~3  # i = interactive : 텍스트 에디터로 커밋내역을 확인&수정할 수 있음 

git revert 4baf97e...27f8e40     ## 커밋 취소. 히스토리 남김 
git push origin master           ## push 하면 취소가 적용됨

푸시한 커밋 특정 파일만 삭제

= tracked file을 git repo에서만 삭제 (working directory 에서는 유지)

git rm --cache sample.txt 
git commit -m "delete sample.txt from only git repo" # 히스토리 남김

브랜치 이름 바꾸기

git branch -m 변경전_branch_name 새로운_branch_name

원격 브랜치 삭제

git push origin --delete origin/브랜치이름

다른 브랜치의 여러 커밋 복사하기

git cherry-pick 오래된커밋ID^...최신커밋ID