git checkout
명령을 사용하면 HEAD를 제어해서 브랜치를 이동할 수 있음.
git reset
명령을 사용하면 HEAD가 가리키고 있는 브랜치의 최신 커밋을 원하는 커밋으로 지정할 수 있음. 이때 어떤 브랜치에 있는 커밋이든 지정할 수 있으며, 명령을 수행한 뒤 브랜치와 연결이 끊긴 커밋은 삭제됨.
git reset 커밋해시
git stash
는 수정 중인 파일 감추기 및 되돌리기를 할 수 있음. 이 명령을 사용하려면 파일이 tracked
상태여야 하는데 즉, 한 번은 커밋한 상태여야 함.
아래 그림에서 커밋했던 f1.txt와 f2.txt 파일을 수정한 것을 확인할 수 있음. 이 수정한 파일을 커밋하기 전에 다른 파일을 수정해야 한다면, 이 수정한 내용을 어딘가에 보관하기 위해서 git stash
명령을 사용함.
git status
를 실행해보면 'nothing to commit, working tree clean' 메세지를 확인할 수 있음. 이 때 f1.txt파일과 f2.txt파일이 사라진 것은 아님.
git stash list
로 감춘 파일들의 목록을 확인할 수 있음.
가장 먼저 감춘 것은 stash@{0}
에 들어있는데, 다른 파일이 추가되면 기존 파일은 stash@{1}
로 옮겨지고 새로 추가된 파일이 stash@{0}
에 담김. 즉, 가장 최근에 보관한 것이 'stash@{0}'에 담김.
git stash pop
급한 작업들을 모두 마쳤다면 감춰둔 파일을 꺼내와 계속 수정하거나 커밋할 수 있음.
git stash apply
stash 목록에 저장된 수정 내용을 나중에 또 사용할지도 모른다면 이 명령을 사용함. stash 목록에서 가장 최근 항목을 되돌리지만 저장했던 내용은 그대로 남겨둠.
git stash drop
stash 목록에서 가장 최근 항목을 삭제함.