Git: 기본 사용법 3. 이전 커밋에 덧붙이기(amend) 및 파일 변경 되돌리기(restore)
이전 커밋에 덧붙이기 및 파일 변경 되돌리기
이전 커밋에 다른 변경을 추가하거나, add를 취소하거나, 파일 수정을 되돌릴 수 있습니다.
다만 이런 방법을 사용하면 되돌릴 수 없으며 기록에 남지 않으므로 필요할 때만 쓰는 게 좋을 것 같습니다.
이전 커밋에 덧붙이기: amend
git commit --amend
커밋을 했는데, 새로운 커밋 없이 파일을 수정하거나 추가하고 싶은 경우, 추가 작업을 마친 뒤 모두 stage한 후 amend 옵션을 추가하여 커밋할 수 있습니다.
이는 직전에 한 커밋을 취소한 후 명령어를 실행하는 시점에서 커밋을 다시 합니다. 따라서 직전 커밋은 일어나지 않은 게 됩니다.
직전 커밋을 없었던 것으로 만드므로 다른 사람이 한 커밋에 사용하지 않는 게 좋습니다.
○ -m '<커밋 메시지>': 다른 변경 없이 커밋 메시지만 변경하고 싶을 때 사용할 수 있습니다.
○ --no-edit: 커밋 메시지 편집기를 실행하지 않고 취소할 커밋 메시지를 그대로 사용합니다.
add 취소: restore --staged
git restore --staged <파일 이름>
파일을 add 명령어를 써서 stage하였는데 이를 취소하고 싶은 경우, restore 명령어를 staged 옵션과 함께 사용할 수 있습니다.
그러면 다시 unstaged 상태가 됩니다.
파일 수정 되돌리기: restore
git restore <파일명>
tracked 파일을 수정하였는데 이를 취소하고 이전 버전으로 되돌리고 싶은 경우, restore 명령어를 사용할 수 있습니다.
그러면 수정 내용이 사라지고 직전 커밋 버전으로 돌아갑니다.
위 내용은 Git Book을 기반으로 작성하였습니다.
Git Book - 2. Git의 기초
Git - 되돌리기
이렇게 --amend 옵션으로 커밋을 고치는 작업은, 추가로 작업한 일이 작다고 하더라도 이전의 커밋을 완전히 새로 고쳐서 새 커밋으로 변경하는 것을 의미한다. 이전의 커밋은 일어나지 않은 일이
git-scm.com