본문 바로가기
코딩해보니/Git

[Git_24] 커밋 수정하기 --amend 옵션 사용하기

by 위시랜 2022. 12. 23.

커밋 수정하기 : --amend 옵션
커밋 수정하기 : --amend 옵션

커밋(commit)과 관련해서 한 가지 더 알아보고자 합니다.

리셋(reset)과 리버트(revert)는 커밋 이력에 영향을 주면서 되돌렸습니다.

하지만 개발을 하다 보면 커밋을 너무 자주 하게 되면 불필요한 커밋 이력만 늘어나게 됩니다.

 

예를 들어, 개발을 진행하면서 파일 3개를 수정했고

완료 후 커밋을 진행했는데 파일 1개를 빼먹고

2개만 커밋했다면 어떻게 할 수 있을까요?

 

나머지 파일 1개를 추가로 커밋을 진행해도 됩니다.

하지만, 이럴 경우 불필요한 커밋 이력이 추가됩니다.

아니면, reset(리셋)으로 되돌린 다음 다시 커밋하는 방법도 있습니다.


--amend 옵션으로 직전에 커밋한 내용 수정하기

이 외에 간단히 직전에 커밋한 정보에

파일 하나만 더 추가한 커밋으로 수정할 수 있습니다.


이렇게 불필요한 커밋을 늘리기 싫고,

앞서 커밋한 내용을 수정하고 싶을 때,

--amend 옵션을 이용할 수 있습니다.

 

이 또한 커밋을 되돌리는 방법 중에 하나라고 할 수 있습니다.

사용법은 다음과 같습니다.

# 직전에 완료한 커밋 수정하기
$ git commit --amend

 

가령, $ git commit -m “first commit”을 실행해 커밋을 완료한 후에

filea.html 파일을 실수로 빠뜨려서 커밋을 추가하지 않고,

직전에 완료했던 커밋을 수정하기 위해

filea.html 파일을 스테이지에 올립니다.

 

$ git add filea.html 라고 실행해 스테이지에 올린 후에

$ git commit --amend 라고 실행하면

커밋 메시지를 편집할 수 있게 편집기가 실행이 되면서

이전 커밋 메시지가 자동으로 포함되어 집니다.

 

이때 커밋 메시지를 수정하거나 수정하지 않고 그대로 커밋해도 됩니다.

커밋 메시지를 저장하고 종료하면

직전에 완료했던 커밋에 filea.html을 포함한 커밋으로 수정됩니다.


소스트리에서 직전 커밋 수정하기

소스트리에서도 이러한 커밋을 할 수 있습니다.

다음과 같이 filea.html 파일을 스테이지에 올린 후

오른쪽 아래에 [커밋 옵션...] 이라는 셀렉트 박스를 클릭합니다.

소스트리(Sourcetree)에서 직전 커밋 수정하기
소스트리(Sourcetree)에서 직전 커밋 수정하기

 

여기서 나오는 옵션 중에 [마지막 커밋 정정]을 클릭합니다.

그러면 다음과 같이 확인 창이 나타나는데 [예]를 클릭합니다.

 

확인 창에서 [예] 클릭
확인 창에서 [예] 클릭

 

위 확인 창에서 [예]를 클릭하면,

다음과 같이 커밋 메시지 창에 마지막 커밋 메시지가 자동으로 입력되는 것을 확인할 수 있습니다.

 

마지막 커밋 메시지 자동 입력
마지막 커밋 메시지 자동 입력

 

메시지를 수정해도 되고 그대로 [커밋] 버튼을 클릭해 진행하면 됩니다.

[커밋 옵션...] 버튼을 클릭해보면

다음과 같이 옵션이 선택(체크 표시)되어 있는 것을 확인할 수 있습니다.

 

커밋 옵션
커밋 옵션

 

선택을 취소하려면 다시 한번 클릭하면 됩니다.

선택을 취소했다고 자동으로 입력된 커밋 메시지가 지워지진 않습니다.

 

지금까지 직전(마지막) 커밋을 수정하는 방법을 알아봤습니다.

감사합니다.

댓글