* 본 포스팅은 필자가 개인적으로 학습한 내용 정리 및 리뷰를 위해 포스팅합니다.
https://kks2140501.tistory.com/14
▲ 위에서 말한 branch를 합칠때는 다양한 방법을 사용할 수 있다
● 3-way merge
▲ branch에 신규 commit이 1회 이상 있는 경우 merge 명령을 내리면
두 branch 코드를 합쳐서 새로운 commit을 자동으로 생성
3-way merge 라고 부르며, merge의 기본 동작 방식
● fast-forward merge
▲ 가끔 새로운 branch에만 commit이 있고 기준이 되는 branch에는 신규 commit이 없는 경우
fast-forward merge 된다.
(git merge --no-f 브랜치명 해서 강제로 3-way merge 할 수 있다)
● rabase and merge
▲ rebase는 branch의 시작점을 다른 commit으로 옮겨주는 행위
1. rebase를 이용하여 신규 branch의 시작점을 main branch 최근 commit으로 옮긴 다음
2. fast-forward merge
■ rebase 사용 이유
1. 3-way merge 말고 강제로 fast-forward 하고 싶을 때
2. branch 없이 코드 짜고 싶을 때
단점 : branch끼리 차이가 많은 경우 rebase 할 경우 충돌이 발생!!
git switch 새로운 브랜치
git rebase main
git switch main
git merge 새로운 브랜치
▲ 1. 새로운 브랜치로 이동
2. git rebase main
3. branch가 main branch 끝으로 이동 후 fast-forward merge
● squash and merge
새로운 branch에 있던 commit들을 연결해주는 게 아니라 떼와서 main branch에 붙여준다
장점 : 3-way merge는 main branch의 git log를 출력해보면 다른 branch들의 commit 내역도 같이 출력되어 보기 힘들지만 squash and merge를 사용하면 log 보기가 간편해진다
git switch main
git merge --squash 브랜치명
git commit -m '메세지'
■ 브랜치 삭제
git branch -d 브랜치이름
git branch -D 브랜치이름
▲ 병합이 완료된 브랜치 삭제 시엔 -d
병합하지 않은 브랜치 삭제 시엔 -D
결론
merge 종류가 많지만 하나하나 개념을 파악하고 회사에서 원하는 merge 방법에 적용해야겠다.
출처 : https://codingapple.com/course/git-and-github/
'git' 카테고리의 다른 글
[git] 협업을 위한 github 사용법! (0) | 2022.08.28 |
---|---|
[git] 되돌아가자(git restore, revert, reset) (0) | 2022.08.27 |
[git] 코드의 복사본! branch 만들기 (0) | 2022.08.25 |
[git] git add, commit, diff를 쉽게 하는 법!(VSCode) (0) | 2022.08.19 |
[git] git add, commit을 이용한 파일 기록 (0) | 2022.08.19 |
댓글