git reset 을 하고 나서 파일을 수정한 후에, 다시 commit 을 할 때, 열심히 작성해 놓은 git reset 이전의 commit message 를 다시 불러와서 사용하고 싶은 경우가 있다.
이때 아래 명령을 사용하면 된다.
git commit --reuse-message=HEAD@{1}
또는
git commit -C HEAD@{1}
그런데, HEAD@{1} 이 무엇을 의미하는 지 궁금해졌다. git 은 자동으로 HEAD 가 가리키던 곳에 대한 history 를 가지고 있는데, HEAD@{1} 은 현재 HEAD 이전에 HEAD 가 가리키는 곳을 저장하고 있다. 이를 확인하기 위한 명령이 reflog 이다.
가장 최신은 HEAD@{0} 이고 이는 HEAD 와 동일하다.
# git reflog
734713b HEAD@{0}: commit: fixed refs handling, added gc auto, updated
d921970 HEAD@{1}: merge phedders/rdocs: Merge made by the 'recursive' strategy.
1c002dd HEAD@{2}: commit: added some blame and merge stuff
따라서 처음 명령에서 HEAD@{1} 의 '1' 값은 git 명령으로 HEAD 가 변경된 것에 따라 달라질 수 있다는 것이다. reflog 명령으로 잘 확인하고 사용하자.
'IT 기술 > 개발환경_유틸 관련 팁' 카테고리의 다른 글
[git] 여러 개의 commit 에서 author 변경하기 (0) | 2022.11.09 |
---|---|
[Python 개발환경] pip 설치/사용법 (3) | 2018.09.26 |
[vim] tab 을 space 로 변환, [no]expandtab 관련 팁 (0) | 2018.08.29 |
[GIT] commit message 유지하면서 commit 에 포함된 파일 제거하기 (0) | 2018.05.29 |
[git/gerrit] gerrit 을 사용한 여러 project 함께 빌드 (0) | 2018.04.26 |