github에서 PR이후, merge를 하는방법에는 3가지 방법이 있다. 각각의 방법에 따라 아래와 같이 history내역이 달라진다. 더 깔끔한 history 관리를 위해 3가지 merge방법을 비교해서 알아보자!
feat/merge
브런치에서 2번의 커밋을 하고, master
로 PR을 했다.
master
에서 create a merge commit을 통해 merge 하면 아래와 같이 결과가 나온다. feat/merge
에서 했던 커밋 1, 커밋 2, 그리고 Merge commit 까지 총 3개의 내역이 표시된다.
feat/squash
브런치에서 2번의 커밋을 하고, master
로 PR을 했다.
master
에서 squash and merge를 통해서 병합을 하면 아래와 같이 결과가 나온다. 2개의 커밋을 포함한 1개의 내역으로만 표시된다.
feat/rebase
브런치에서 2번의 커밋을 하고, master
로 PR을 했다.
master
에서 rebase and merge를 통해서 병합을 하면 아래와 같이 결과가 나온다. feat/rebase
에서 커밋한 2개의 커밋만 master
에 합쳐지게 된다.
Rebase and merge
를 하면master
의 git log와feat/rebase
의 git log가 같은 모양이 된다.
git history를 어떻게 남기느냐에 대한 정책에 따라 3가지 방법 중 가장 알맞은 방법을 사용하는 것이 좋을 것 같다.