위와 같이 master 외에 서브브랜치를 만들어 별도의 프로젝트를 진행했다고 하자. 별 생각없이 v2라는 메시지로 커밋하였는데 나중에 master와 merge 할 것을 생각하니 보기 안 좋을 것 같다. 또한 서브 브랜치의 커밋내역을 하나로 깔끔하게 합치고 싶다면 어떻게 해야 할까? 이 때 사용하는 것이 Interactive Rebase 다.
여기서는 서브 브랜치의 내용을 master와 분기된 시점부터 모두 하나로 합치고 싶다. 따라서 master 브랜치를 선택한 후 마우스 우클릭 > Interactive Rebase를 클릭한다.
위와 같은 화면에서 커밋 목록이 나오는데, 1번이 더 과거의 목록이다. 변경하고 싶은 목록을 클릭한 뒤 우측 상단의 버튼을 클릭해서 해당 목록의 Action 상태값을 변경해준다.
1) Pick
해당 커밋을 아무 변경없이 그 상태로 놔둔다는 의미다.
2) Squash / Fixup
1번과 2번을 합치려면 2번을 클릭한 뒤 우측 상단의 Squash 또는 Fixup 을 클릭하여 2번의 Action을 변경해준다. 이 2개의 옵션은 반드시 더 과거의 커밋목록이 있어야 실행이 가능하며 차이점은 Message 뿐이다. Squash는 합치는 목록들의 메세지를 한 문장으로 합치며, Fixup은 가장 과거의 Message 즉, 여기서는 1번의 Message를 사용하게 된다.
3) Reword
Message를 수정할 수 있다.
사실 나는 1번의 Message를 그대로 사용하고 싶기 때문에 Fixup을 사용하면 되지만, 여기서는 Squash를 사용해보겠다. 2번을 Squash로 변경한다. 또한 기능 테스트삼아 1번을 Reword로 변경해 보았다.
이제 좌측 상단의 Start를 클릭한다.
1번을 Reword로 선택했기 때문에 Message 변경 박스가 뜬다. 1번 메시지를 수정하고 싶다면 수정한 후 Reword를 클릭하여 진행한다.
커밋이 하나로 합쳐지긴 했지만 squash를 선택했기 때문에 Message도 하나로 합쳐진 것을 볼 수 있다.
커밋 Message를 수정하려면 마우스 우클릭 > Modify > Edit 를 클릭한다. (메시지만 수정하고 싶다면 Reword, Author와 Committer도 수정하고 싶다면 Edit)
Git Staging에서 수정하고 싶은 Commit Message로 수정한 후 Commit 하면 메시지가 변경된다.
'개발 > Git' 카테고리의 다른 글
git 이클립스 소스관리와 branch 병합 (0) | 2022.10.15 |
---|---|
git 이클립스 브랜치 충돌 병합 (2) | 2022.04.13 |
git 이클립스 pull (0) | 2022.04.13 |
git 이클립스 rejected-non-fast-forward (0) | 2022.04.13 |
git 이클립스 revert , reset 차이점 (0) | 2022.04.08 |