[Git] 5.2. 수정 못 한 파일을 이미 만든 커밋에 추가 : amend

업데이트:

카테고리:

태그: , , , ,

amend 명령어

amend 명령어를 사용하면 repo에 push한 커밋까지 수정할 수 있다.


상황 준비

image

IntelliJ에 ‘amend.md’ 파일을 만들고 ‘어멘드 실습하기’ 텍스트를 넣었다.

image


문제 상황

이후 Sourcetree에서 ‘amend 실습 파일 추가’라는 커밋 메시지와 함께 커밋했다. 그런데 amend.md 파일의 내용이 ‘어멘드 실습하기’가 아니라 ‘amend 실습하기’로 작성했어야 함을 뒤늦게 알았을 때, 수정 커밋을 하지 않고 커밋을 수정하는 방법이다.


해결

image

우선 amend.md 파일의 내용을 ‘amend 실습하기’로 변경한 뒤, Sourcetree에서 스테이지에 올린다.

image

Sourcetree의 커밋 버튼 위에 [커밋 옵션] 드롭다운을 클릭하면 여러 선택사항들이 나오는데, [마지막 커밋 정정] 버튼을 누른다. (영어로는 Amend last commit) 이후 commit message와 함게 커밋한다.

image

변경내역이나 수정 커밋이 없이 처음부터 ‘amend 실습하기’ 였던 것처럼 보인다.


이미 repo에 push한 커밋이라면?

image

우선 이대로 커밋을 push해보자. 이번에는 코드 수정 없이 커밋 메시지만 수정해보려고 한다.

image

수정하려는 커밋 메시지 ‘amend 실습 파일 추가 커밋 메시지 수정’ 을 입력하고 커밋한다.

image

히스토리를 보면 위와 같이 갈래가 생긴 것을 볼 수 있는데, [.gitignore에 git-playground.iml 파일 추가] 커밋의 초기 설정 이후 [origin/main]에는 ‘amend 실습 파일 추가’ 커밋이, [main]에는 ‘amend 실습 파일 추가 메시지 수정’ 커밋이 추가되었다. 아직 최종 커밋이 아직 push되기 전이기 때문에 로컬저장소에만 반영되어 있기 때문이다.

image

이를 강제 푸시한다. 만약 강제 푸시 체크박스가 비활성화 되어 있다면 [도구 - 옵션 - Git - 강제 푸시 가능] 옵션을 체크하면 활성화된다.

image

그래프가 깔끔하게 정리됐음을 확인할 수 있다.


Reference

  • 팀 개발을 위한 Git GitHub 시작하기, 한빛미디어, 정호영,진유림

댓글남기기