반응형
merge vs git rebase
merge
master 와 feature/a 를 머지 할 경우 git은 제 3의 별도의 merge 커밋을 만들고 만들어서 두 브랜치를 머지 합니다.
rebase
위 에서 2라는 커밋은 master 와 feature/a 의 merge base 입니다. rebase 라는 건 말그래도 base를 다시 만든다는 뜻입니다.
HEAD 가 feature/a 이 인 상태에서
git rebase master
를 하면 현재 마스터의 최종 커밋부터 feature/a 브랜치가 생성 됐다고 변경 합니다.
1 ⇒ 2 ⇒ 3 ⇒ a 1
위 의 형태로 히스토리가 정리 됩니다.
반대로 HEAD 가 master인 상태에서
git rebase feature/a
를 하면 현재 머지베이스를 feaure/a 의 최종 커밋으로 변경합니다.
1⇒2⇒a 1⇒3
여기서 주의 할점은 a 1⇒3 을 비교하는 과정에서 conflct가 발생해서 그를 해결 하는 과정에서 3번 커밋이 유실 됩니다.
이 사진 처럼요. 이렇게 merge 에 비해서 rebase 는 히스토리가 깔끔해지는 장점이 있지만 conflict가 나기 쉽고 이력이 남지 않아서 변경 커밋이 유실되는 경우가 생길수 있어 주의해야 합니다.
반응형
'개발관련 > 자바스크립트 팁' 카테고리의 다른 글
모바일 웹 IOS Pull Down (잡아 당기기) css만으로 액션 방지 하기 (2) | 2021.05.13 |
---|---|
그래서 Top 이 어딘데? getBoundingClientRect().top element.offsetTop 차이점 (2) | 2021.05.11 |
VS CODE TIP (0) | 2021.01.19 |
실무에서 값을 할당 할때 많이 사용하는 자바스크립트 연산자 (0) | 2021.01.18 |
GraphQL 맛보기 강의 ep 01 (0) | 2020.09.18 |