The Ultimate Git Course - with Applications in Unreal Engine
여러 commit들을 하나로 묶거나 순서를 변경하는 것을 뜻한다.
하나의 기능을 구현하는데 여러 개의 commit이 사용된 경우에 이것들을 하나의 큰 변경 사항으로 묶을 수 있다.
흔히 Squash라고 알려져 있으나, squash는 사실 Interactive Rebase에서 지원하는 명령어 중 하나이다.
- pick: commit을 사용
- reword: commit을 사용하고 commit 메시지 변경
- squash: commit을 사용하고 이전 commit과 병합
위 명령어들을 git-rebase-todo에 적절히 사용하여 commit들을 묶거나 순서를 바꿀 수 있다.
Interactive Rebase를 수행하면 commit history가 바뀌기 때문에 누군가 squash에 사용된 변경 사항을 Pull한 적이 있거나, 다른 변경 사항을 Push한 적이 있다면 정상적으로 Merge를 수행할 수 없다.
이런 이유로 Remote origin에 Push하기 전, main에 Branch를 병합하기 전에 Interactive Rebase를 수행하는 것이 좋다.
만약 그렇지 않다면 commit history를 덮어쓰는 강제 Push를 수행해야 한다.
특히, 협업 중인 main Branch에서는 사용해서는 안 된다.
'Unreal Engine > The Ultimate Git Course in Unreal Engine' 카테고리의 다른 글
Git의 Cherry-pick (0) | 2023.01.20 |
---|---|
Git의 Stash (0) | 2023.01.20 |
SSH (0) | 2023.01.20 |
Remote와 Local Repository (0) | 2023.01.20 |
Git의 Rebase (0) | 2023.01.19 |