개요
여러 커밋을 하나의 커밋으로 통합하고 싶은 경우에 용이한 방법 2가지를 소개한다.
Fixup
- 인접한 두 컷밋을 하나로 통합하되, 병합되는 쪽의 커밋만 유지한다. ( 커밋하는 쪽의 커밋은 버림 )

기능을 구현한 커밋이 하나 있고, 기능 구현의 문제점을 보완한 tmp 커밋이 있다.
기능 구현 커밋에 포함시키는 것이 더 맞으므로 커밋을 통합하려고 하는데, 이럴 때 적절한 것이
fixup
이다.보완용 커밋의 커밋 메세지는 버리고 수정된 코드만 기존 커밋에 반영한다.

fixup
은 인접한 커밋을 통합시키는데, 웬 뜬금없는 to-be-removed 커밋이 껴있으므로, 먼저 to-be-removed 커밋을 drop 하던지 아니면 아직 개발중이라서 유지해야 한다면 커밋 위치를 옮겨서 올바른 순서대로 커밋이 위치하도록 한 후에 fixup을 해주자.to-be-removed
커밋은 개발을 위해 원하는 상황을 만들고자 임의로 코드를 조작해둔 것을 반영한 커밋으로, 최종 PR을 올리기 전에는 drop
시킬 커밋을 뜻한다.Squash
- 인접한 커밋을 통합시키고는 싶은데, 통합되는 커밋 메세지가 모두 유지됐으면 하는 경우에 적합한 통합 방식이다.

영양성분 별로 그래프를 그리는 하나의 feature로 묶을 수 있을 거 같다.
다소 너무 세세하게 커밋을 나눈 느낌이 있어서 하나의 feature로 커밋을 통합하고자 한다.
하지만 앞서 했던 fixup 처럼 한쪽의 커밋 메세지를 날리는 방식이 아니라, 커밋 메세지는 둘 다 유지되었으면 하는 경우에는
squash
방식의 병합이 적합하다.
인접한 커밋을 squash로 병합하고자 하는 경우에는
squash
또는 s
를 적어주면 된다.
두 커밋이 squash로 병합되면서, 커밋 메세지를 수정하도록 editor가 뜬다. 적절히 커밋 내용을 수정하고 반영한다.

하나의 커밋으로 squash 방식을 통해 통합되었다.