Git rebase? squash?

samdaso-o·2021년 10월 10일
0

git

목록 보기
3/3

Git rebase? squash?

Git rebase : 다른 branch에 존재하던 commit들이 합쳐지지 않고 개별적으로 master branch에 추가된다 / 브랜치 병합 시 merge 기록이 따로 남지 않아 하나의 브랜치에서 작업한 것으로 보여진다

-제가 손으로 그린 그림이라 죄송합니다..ㅎㅎㅎ

Git squash : 다른 branch에 존재하는 commit들을 하나로 합쳐 새로운 commit을 만들어 그 commit만 master branch에 추가한다. / commit history를 깔끔하게 하기 위해 사용된다.

-제가 손으로 그린 그림이라 다시 한번 죄송합니다..ㅎㅎㅎ

두가지의 가장 큰 차이점은 parent의 차이이다. squash는 새로운 커밋을 생성해 merge해 새로운 커밋만 parent로 바라보지만, rebase는 모두 각각의 하나의 parent를 가지게 된다.

tip

Dev branch - feature간의 머지 : squash & merge가 유용함. 매번 작업하는 feature는 지저분한 히스토리를 가지고 있을 확률이 높다. 또한 feature branch를 merge 후 다시 재사용하지 않는다는 점에서 기존의 commit을 전부 남길 필요가 없다.

master - Dev branch간의 머지 : rebase & merge가 유용함. dev를 머지할때 굳이 별도의 새로운 커밋을 생성할 필요가 없기 때문이다.

profile
ㅎㅅㅎ

0개의 댓글