지금까지 배웠던 내용 이외에 협업할 때 자주 쓰는 명령어 5가지 (amend, stash, reset, revert, cherry-pick) 를 알아보겠습니다.

1. amend

커밋은 하나의 기능을 만들 때 변경사항을 저장해 주는 것이 좋습니다. 하나의 기능을 만들고 커밋을 할 때 실수로 커밋하지 못한 파일이나 수정된 파일이 있을 수도 있습니다. 이때, 최신 커밋에 누락된 파일을 추가하고 싶을 때에 amend를 사용합니다. amend를 한 후 커밋을 보면 기존 커밋과 amend한 내용이 저장됩니다.

‘한 번 더 커밋 하면 되지’라고 생각할 수도 있습니다만, 같은 기능을 나타내는 커밋이 2개가 생겨 버리게 되므로 커밋을 되돌릴 때 혼동이 올 수 있습니다.

<aside> 💡 commit과 push는 날짜나 code 작성 양에 따라 하는 것이 아니라 기능 구현 단위로 해주시는 것이 좋습니다. (유지보수와 복구 측면에서)

</aside>

commit 한 경우

commit 한 경우

amend한 경우

amend한 경우

amend라는 기능을 amend.txt에 작성하겠습니다.

amend 1
$ git add amend.txt
$ git commit -m "기능 추가"

기능을 수정합니다.

amend 1
amend 2

amend를 이용하여 최신 커밋에 수정한 내용을 추가합니다.

$ git add amend.txt
$ git commit --amend

Untitled

VSC(Visual Studio Code)를 사용하신다면 위의 명령어 실행 시 VSC editer에서 COMMIT_EDITMSG 파일이 켜지게 됩니다. 아래 사진의 빨간 박스가 있는 부분이 이전 커밋 메시지인 것을 확인할 수 있습니다. 만약 커밋 메시지를 수정하기 원한다면 해당 파일에서 수정할 수 있으며, 수정을 원하지 않는 경우COMMIT_EDITMSG를 꺼주면 amend가 적용된 것을 확인할 수 있습니다.