Git Commit
Commit 메세지 작성, 간략한 한 줄까지 메세지를 작성하여 수정사항을 저장소에 commit 한다.
# git add . # git commit -m "commit message" # git commit --amend
git commit --amend 옵션을 지정하여 커밋을 수행하면, 동일한 Branch 에서 바로 이전에 Commit 되었던 내용에 새로운 코멘트를 추가 한다.
커밋 이후에 실수를 통한 재 커밋이 발생할 수 있는데,
여러 차례 커밋 반복이 없이 바로 이전의 내용에 포함이 될 수 있는 커밋사항은 Git commit --amend 명령어를 통해 커밋을 하게되면 덮어 씌울수 있다.
Edit 를 이용한 Git Commit
commit 옵션 중에 -m 를 사용하지 않고 commit을 할 경우 코멘트를 입력 할 수 있는 edit가 실행되어 코멘트를 입력 할 수 있다.
이때 기본 에디터 (VI) 에는 새로운 commit 메세지를 추가할 여부를 묻는다.
첫번째 줄은 --oneline 출력시 사용되며, # 로 시작되는 모든 줄은 최종 메세지에서 삭제.
메세지를 작성후 저장하고 에디터를 종료하면 커밋이 자동으로 완료된다.
# git commit '' # git commit -a -m 'added new benchmarks'
-a 는 별도 add 명령어를 사용하지 않고 바로 commit 을 가능하게 한다.
Git Commit 삭제
최근 5개의 커밋을 삭제하고자 한다면, Git rebase -i HEAD~5 명령어를 실행한다.
# git rebase -i HEAD~5 # drop
커밋의 개수에 따라 숫자를 변경하면 된다.
특정 Edit 가 열리면 삭제하고자 하는 커밋의 pick이라고 되어있는것을 drop라고 변경하면 저장하면 삭제된다.
Git Commit 수정
최근 5개의 커밋을 수정한다면 다음의 명령어를 실행한다.
# git rebase -i HEAD~5 # reword
특정 Edit 가 열리면 5개의 커밋된 내용이 노출된다.
수정하고자 하는 부분의 pick 라고 되어있는 부분을 reword 라고 변경 후 저장, 그리고 Edit를 종료 한다.
다시 Edit 가 열리면 수정하고자 하는 메세지를 수정후 저장한다.
Git Commit 병합, 합치기
커밋이 자주 발생이 되면 커밋 개수가 많아져서 무겁거나 심플하게 정리할 필요가 발생된다.
# git rebase -i HEAD-5 # squash
특정 Edit 가 열리면 저장하고 싶은 커밋은 그대로 유지하며 합치고 싶은 커밋사항만 pick 대신 squash 라고 수정후 저장한다.