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