GitNotes.10-3.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Section 10.3: 커밋 수정(amend) 하기

사용자의 가장 마지막 커밋이 아직 발행되지 않았다면 (아직 upstream 저장소에 push 하지 않았다면) 해당 커밋을 수정(amend) 할 수 있다.

git commit --amend

위 명령어는 현재 stage 된 변경사항들을 이전 커밋에 추가해 준다.

Note: 이 방법은 잘못 작성된 커밋 메시지를 수정할 때에도 주로 사용된다. 위 명령어 수행시 기본 편집기가 실행되어 (주로 vi / vim / emacs) 이전 커밋 메시지를 변경할 수 있도록 해준다.

커밋 메시지를 명령줄에서 직접 기술하려면:

git commit --amend -m "New commit message"

혹은, 이전 커밋 메시지를 변경 없이 그대로 이용할 수도 있다:

git commit --amend --no-edit

amend 수행시 커밋 날짜는 업데이트 되지만, 작성 날짜 (author date) 는 변경하지 않는다. 이 날짜 정보까지 갱신하기를 원한다면 아래와 같이 입력한다.

git commit --amend --reset-author

커밋의 작성자 (author) 역시 amend 시에 변경 가능하다:

git commit --amend --author "New Author <email@address.com>"

Note: 마지막 커밋을 amend 한다는 것은 이전 커밋을 새로운 커밋으로 완전히 대체하는 작업으로써, 이전 커밋은 브랜치의 history 에서 아예 제거되게 된다. 이러한 특성은 공개된 (public) 저장소와 다른 협력자 (collaborator) 들과 함게하는 브랜치에서 작업할 때 항상 염두에 두어야 한다.

이러한 특성으로 인해, 이미 push 된 커밋을 amend 하게 된다면 이후 push 시에 --force 옵션 기술이 필요하게 된다.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

+ Recent posts