[Git] 5.2. 수정 못 한 파일을 이미 만든 커밋에 추가 : amend
카테고리: Git
태그: Amend, Git, GitHub, GUI, SourceTree
amend 명령어
amend 명령어를 사용하면 repo에 push한 커밋까지 수정할 수 있다.
상황 준비
IntelliJ에 ‘amend.md’ 파일을 만들고 ‘어멘드 실습하기’ 텍스트를 넣었다.
문제 상황
이후 Sourcetree에서 ‘amend 실습 파일 추가’라는 커밋 메시지와 함께 커밋했다. 그런데 amend.md 파일의 내용이 ‘어멘드 실습하기’가 아니라 ‘amend 실습하기’로 작성했어야 함을 뒤늦게 알았을 때, 수정 커밋을 하지 않고 커밋을 수정하는 방법이다.
해결
우선 amend.md 파일의 내용을 ‘amend 실습하기’로 변경한 뒤, Sourcetree에서 스테이지에 올린다.
Sourcetree의 커밋 버튼 위에 [커밋 옵션] 드롭다운을 클릭하면 여러 선택사항들이 나오는데, [마지막 커밋 정정] 버튼을 누른다. (영어로는 Amend last commit) 이후 commit message와 함게 커밋한다.
변경내역이나 수정 커밋이 없이 처음부터 ‘amend 실습하기’ 였던 것처럼 보인다.
이미 repo에 push한 커밋이라면?
우선 이대로 커밋을 push해보자. 이번에는 코드 수정 없이 커밋 메시지만 수정해보려고 한다.
수정하려는 커밋 메시지 ‘amend 실습 파일 추가 커밋 메시지 수정’ 을 입력하고 커밋한다.
히스토리를 보면 위와 같이 갈래가 생긴 것을 볼 수 있는데, [.gitignore에 git-playground.iml 파일 추가] 커밋의 초기 설정 이후 [origin/main]에는 ‘amend 실습 파일 추가’ 커밋이, [main]에는 ‘amend 실습 파일 추가 메시지 수정’ 커밋이 추가되었다. 아직 최종 커밋이 아직 push되기 전이기 때문에 로컬저장소에만 반영되어 있기 때문이다.
이를 강제 푸시한다. 만약 강제 푸시 체크박스가 비활성화 되어 있다면 [도구 - 옵션 - Git - 강제 푸시 가능] 옵션을 체크하면 활성화된다.
그래프가 깔끔하게 정리됐음을 확인할 수 있다.
Reference
- 팀 개발을 위한 Git GitHub 시작하기, 한빛미디어, 정호영,진유림
댓글남기기