태코놀로지

Git Commit(커밋) 내용 수정하기 본문

Git

Git Commit(커밋) 내용 수정하기

태코놀로지 2016. 12. 22. 15:47

Git Commit(커밋) 내용 수정하기


 Pycharm IDE에 Github을 연동하여 사용하면서 커밋 과정에서 다수의 파일이 묶여서 커밋되는 사태가 간간히 발생했다. 이 경우 일부 파일에 대해서 부적절한 커밋 내용이 적용되는데, 이를 해결하기 위한 방법이 필요했다. 딱히 Github을 사용하면서 clone, add, commit, checkout 처럼 자주 사용하는 명령어는 익숙하지만, 이런 문제를 해결하는 방법은 알지 못했고, 이 기회에 구글링을 통해 알게된 내용을 정리해본다.


 바로 이전에 진행한 커밋 내용을 변경하는 데에 필요한 명령어는 다음과 같다. 이 명령어를 활용하면 방금 실수한 커밋 내용에 대해서는 변경이 가능하다. 그러나 잘못된 커밋이 적용된 후 한 참뒤에 확인했다면 아래의 명령어로는 해결이 불가능하다.


git commit --amend


 바로 이전보다 오래된 커밋 사항에 대해서 수정이 필요할 경우에는 아래의 명령어를 사용한다. 명령어는 방금 커밋한 내용(HEAD)으로부터 앞쪽으로 n번째 커밋까지 내용을 확인할 수 있다.


git rebase -i HEAD~n

ex) git rebase -i HEAD~3 #이전에 수행했던 3번째 커밋 내용까지 확인


 명령어가 수행되고나면 편집기가 실행되고, 아래와 같이 헤드부터 커밋한 순서대로 상단에 표시된다. 그대로 편집기를 종료하면 아무런 변동없이 종료되는 것이며, 수정을 하기 위해서는 상단의 각 커밋 중 변경하고 싶은 커밋에 `pick`을 `edit`으로 변경해주면 된다.



 `edit`으로 변경 후 에디터를 저장 및 종료하면 다음과 같은 메시지를 볼 수 있다. 메시지에서 명시된 명령어를 통해 커밋된 내용 수정이 가능하다. 다수의 커밋에 대한 수정을 위해 `edit`을 여러가지 작성했을 때, 주의해야 할 점은 `edit` 순서에 따라 진행된다는 점이다. 즉, `edit`으로 총 네 개의 커밋 내용을 변경코자 한다면, 아래의 순서에 따라 진행하게 된다.



첫 번째 커밋 지점으로 이동 됨

git commit --amend

(커밋 내용수정)

git commit --continue


두 번째 커밋 수정으로 이동 됨

git commit --amend

(커밋 내용수정)

git commit --continue


세 번째 커밋 수정으로 이동 됨

git commit --amend

(커밋 내용수정)

git commit --continue


네 번째 커밋 수정으로 이동 됨

git commit --amend

(커밋 내용수정)

git commit --continue


Successfully rebased and updated refs/heads/master.


 `edit`으로 설정한 모든 커밋 내용에 대해 수정이 완료되면, 마지막으로 git rebase --continue 명령어를 실행했을 때 다음과 같이 성공적으로 진행되었다는 메시지를 확인할 수 있다.


Successfully rebased and updated refs/heads/master.


 정리하면, 위에서 설명했던 rebase와 amend 기능을 통해 IDE-Github 연동으로 인해 발생한 부적절한 커밋 내용에 대한 변경을 할 수 있다.

Comments