git merge squash에 대해 알아봅시다.

GIT 2023. 4. 16. 01:20

 안녕하세요. 이번 시간에는 git merge squash에 대해 간단하게 알아보고 실습해 보겠습니다.

 


 현재, 깃 그래프는 위와 같아요. main commit가 master의 head입니다. 여기로부터 분기되어 test add와 test2 add라는 커밋이 들어갔는데요. 이 부분이 test 브랜치에 있는 commit입니다. 이제, 우리는 이런 상황을 생각해 보겠습니다. feature test를 개발했고, 테스트가 잘 되어서 merge하려는 상황입니다.

 

 먼저, test add의 커밋 hash는 f7ca322.. 입니다. test.txt가 추가되었다고 하는군요. 어떤 내용이 추가되었는지 보겠습니다.

 

 

 test.txt에 1과 2가 추가되었습니다.

 

 다음 test2 add에는 test2.txt가 추가되었습니다. 커밋 hash는 f42e420입니다. 어떤 내용이 추가되었는지 보겠습니다.

 

 역시 test2.txt에 1, 2가 추가되었습니다. test 브랜치에서 추가된 기능을 요약하면, test.txt와 test2.txt에 1과 2, 이렇게 2개의 줄이 추가되었다는 점이겠군요.

 


 이제, git merge test --squash로 머지해 보겠습니다. test를 main에 merge를 하는데, --squash를 한다는 의미입니다. test에는 커밋 2개가 쌓여 있었는데요. 어떻게 머지가 되는지 보겠습니다.

 

 

 test.txt와 test2.txt에 변경 사항이 있는, 커밋 hash가 923bf.. 인 커밋이 main에 추가됩니다. 즉, test에 test feature를 개발하기 위한 커밋이 t1, t2가 있었어요. 이 부분을 main에 머지했을 때, t1과 t2가 반영된 또 다른 t3'이 생성됨을 알 수 있어요. 즉 t1과 t2가 t3'으로 되었음을 알 수 있어요. 합쳐진 셈입니다.

 

 해당 커밋에 test.txt와 test2.txt가 어떻게 변했는지 보겠습니다.

 

 먼저 test.txt입니다. 1과 2가 추가되었습니다.

 

 다음 test2.txt입니다. 역시 1과 2가 추가되었음을 알 수 있습니다.