하위 브랜치에서 작업을 마치고 상위 브랜치로 합치는 방법으로는 merge 와 rebase 가 있다. 그 차이점이 헷갈려 정리를 해보았다.
Git 브랜치 합치기
- git merge
merge 를 실습하기 위해 main branch 에서 하위 브랜치를 하나 따서 새로운 파일을 생성한다.
1. 하위 브랜치 생성
(main)$ git branch merge-practice
2. 브랜치 이동 후 파일 추가 ( merge.yaml ) 후 커밋
merge & rebase Test .. ( 내용 무관 )
3. main 브랜치에서 기존 파일 수정 ( practice.yaml ) 후 커밋
merge 와 rebase
- merge 테스트하기 ( 추가 )
4. 브랜치 합치기 ( 현재 위치 : main )
(main)$ git merge merge-practice
5. 실행 결과
- git rebase
1. 하위 브랜치 생성
(main)$ git branch rebase-practice
2. 브랜치 이동 후 파일 추가 ( rebase.yaml ) 후 커밋
merge & rebase Test .. ( 내용 무관 )
3. main 브랜치에서 기존 파일 수정 ( practice.yaml ) 후 커밋
merge 와 rebase
- rebase 테스트하기 ( 추가 )
4. 브랜치 합치기 ( 현재 위치 : rebase-practice )
(rebase-practice)$ git rebase main
5. 실행 결과
결과 그래프를 보면 main 의 HEAD 보다 rebase-practice 의 브랜치 HEAD가 더 앞서는 것을 볼 수 있다.
main 의 HEAD 를 최신 상태로 업데이트 하기위해서는 merge 가 필요하다.
6. main HEAD 최신 상태로 업데이트 하기 ( 현재 위치 : main )
(main)$ git merge rebase-practice
7. 실행 결과
Merge 와 Rebase
Merge 를 사용하면 히스토리를 확인할 수 있고 reset 을 통한 복구가 가능한다. 그렇다면 Rebase 는 어떨까 ?
결과 그래프를 보면 이전 브랜치의 히스토리가 없어지고 하나의 줄기만이 확인 가능하다.
이는 중복 로그를 남기지 않고 히스토리를 깔끔하게 유지할 수 있다는 장점이 있지만, 협업 시에 Rebase 를 사용하면 히스토리를 복구할 수 없기 때문에 Merge 가 더 적합할 수 있다.
또한 동일하게 적용되어야 할 내용으로는 더이상 사용하지 않는 branch 를 삭제하자는 것이다.
참고
얄코, 제대로 파는 Git & GitHub, https://inf.run/XZY4
'Tools' 카테고리의 다른 글
[Artillery] 성능 테스트 with spring boot (0) | 2024.03.31 |
---|---|
[SonarQube] SonarQube 로 정적 분석하기 (0) | 2024.01.21 |