마지막 커밋 수정하기
- 마지막 커밋을 수정하는 것은 Git에서 자주 하는 작업 중 하나입니다.
- 이를 통해 커밋 메시지를 수정하거나 수정한 파일을 마지막 커밋에 추가할 수 있습니다.
- 수정한 파일을 Staging Area에 넣고 git commit --amend 명령을 사용하여 커밋을 수정할 수 있습니다.
-
$ git commit --amend
- 이 작업은 주의가 필요하며, 이미 Push한 커밋은 수정해서는 안 됩니다.
- 커밋을 고칠 때는 추가된 변경 내용이 커밋 메시지에 충실하게 담겼는지 확인해야 합니다.
- 때로는 --no-edit 옵션을 사용하여 커밋 메시지를 변경하지 않고도 커밋을 수정할 수 있습니다.
-
$ git commit --amend --no-edit
커밋 메시지 여러개 수정하기
- git rebase 명령을 사용해서 커밋 메시지를 여러 개 수정할 수 있습니다.
-
$ git rebase -i HEAD~3 pick 10317bb 7-1 pick b173fae 6 pick f8ca9b4 8
- 커밋 순서는 오래된 커밋부터 보여집니다.
- pick을 edit으로 표시 후 저장 후 해당 커밋으로 이동됩니다.
-
$ git commit --amend
- 위에 명령어를 수행 후 커밋 메시지를 수정 후 종료합니다.
-
$ git rebase --continue
- 위에 명령어로 넘어간 뒤 다시 git commit --amend로 수정하면 됩니다.
커밋 순서 바꾸기
-
$ git rebase -i HEAD~3 pick b173fae 6 pick 10317bb 7-1 pick f8ca9b4 8
- 위에 순서대로 커밋이 바뀝니다.
커밋 합치기
-
$ git rebase -i HEAD~3 pick b173fae 6 squash 10317bb 7-1 squash f8ca9b4 8
- 3개의 커밋이 합쳐집니다.
커밋 분리하기
-
$ git rebase -i HEAD~3 pick b173fae 6 edit 10317bb 7-1 pick f8ca9b4 8
- 저장 후 나가면 10317bb 커밋에서 stop이 됩니다.
- git reset HEAD^ 명령으로 커밋 해제 후 원하는 커밋을 여러개 등록한 후 git rebase --continue를 실행하여 작업을 끝냅니다.
filter-branch를 이용한 전체 커밋 수정
-
$ git filter-branch --tree-filter 'rm -f README' HEAD
- 전체 커밋에서 REAME를 제거할 수 있습니다.
- --tree-filter 옵션은 커밋에 checkout한 후에 명령어 실행 후 그 결과를 다시 커밋합니다.
-
$ git filter-branch --subdirectory-filter trunk HEAD
- turnk 디렉토리를 루트 디렉토리로 만듭니다.
-
$ git filter-branch --commit-filter ' if [ "$GIT_AUTHOR_EMAIL" = "schacon@localhost" ]; then GIT_AUTHOR_NAME="Scott Chacon"; GIT_AUTHOR_EMAIL="schacon@example.com"; git commit-tree "$@"; else git commit-tree "$@"; fi' HEAD
- 커밋한 히스토리에서 이메일 주소를 수정합니다.
'GIT > Git 도구' 카테고리의 다른 글
[GIT] 고급 Merge 기술과 충돌 해결 전략 (3) | 2024.03.19 |
---|---|
[GIT] Git Reset과 Checkout 쉽게 이해하기 (1) | 2024.03.18 |
[GIT] 히스토리 검색하기 (0) | 2024.03.18 |
[GIT] 작업에 서명하기 (0) | 2024.03.18 |
[GIT] Stashing과 Cleaning (0) | 2024.03.11 |