Git Merge 종류

Hyunta·2022년 7월 1일
2

꼭꼭

목록 보기
2/2

학습 동기

스터디를 진행하면서 Squash Merge를 계속 했음에도 불구하고 어떤식으로 커밋 기록이 남는지 들여다 보지 않아서 리마인드 할겸 가볍게 정리를 해봤다.

Merge 종류

머지 종류에는 3가지가 존재한다.
1. Merge Commit
2. Squash Merge
3. Rebase Merge

1. Merge Commit

commit a,b,c 를 참조하는 m이 생성되고 m을 통해 a,b,c가 master에 추가된다. m은 2개의 부모를 가진다.

git checkout master
git merge feature/login

2. Squash Merge

commit a+b+c 를 합쳐서 새로운 commit, abc를 만들고 master에 추가된다. abc는 1개의 parent를 가진다. feature 브랜치에서 merge 할 때 깔끔하게 기록에 남는다.

git checkout master
git merge --squash feature/login
git commit -m "feat: 로그인 기능 구현"

3. Rebase Merge

모든 commit들이 합쳐지지 않고 각각 master 브랜치에 추가된다.
각 commit은 모두 하나의 parent를 가진다.

git checkout feature/login
git rebase master
git checkout master
git merge feature/login

Rebase의 경우에는 branch 병합 시 Merge Commit 기록이 남지 않는다. 따라서 마치 하나의 브랜치에서 작업한 것처럼 보여진다.

결론

가볍게 merge에 대해서 알아봤다. 스터디에서 squash merge를 계속 이용하고 있었는데 정확이 어떤 의미인지 모호했었다. 너무 쉬운 개념이어서 그림을 보면서 정리를 하니 한번에 이해가 갔다. 프로젝트를 진행하면서 Squash Merge를 이용해 커밋을 깔끔하게 관리해봐야겠다.

profile
세상을 아름답게!

0개의 댓글