오느레~ 뻬이파~
Git branch merge의 방법인데용~
어케하는지 정?말! 궁금해요!(아님말고 ㅋ)
Git에서 branch merge하는 방법은 크게 2가지가있어요
이제 이 둘이 어떻게 다른지 함 알아보죠!
git merge branchName
위의 명령어로 merge를 할 수 있어요.
현재 브랜치에 branchName의 내용을 가져와서 합치는 명령어랍니다.
기본은 그렇고 이 merge가 세부적으로는 2개로 또 나뉘게되는데요
이 친구는 merge하려는 브랜치와 분기한 브랜치의 부모가 같을 때 사용됩니다.
새로운 merge commit이 생기지 않고 현재커밋에 HEAD와 브랜치를 슥 가져와요
// branch 예시
/-main
o--o--o--o--o--o--o--o--o
/
feat1
이렇게 main에 feat1을 가져오려할 때 부모가 같을때는
/--main, feat1
o--o--o--o--o--o--o--o--o
이렇게 새로운 커밋을 만들지 않고 병합한다는 말입니다~
이 친구가 우리가 흔히 마주하는 merge일 듯 해요
// 1과 2, 3이 합쳐져 4를 만들어냄
/--o--3--/4--o--o
/ /
o--o--o--1--o--o--2
/
여기가 분기점
이렇게 분기를 하고 commit을 생성하면 새로운 merge commit을 만들게 되는데용
이렇게 3개가 합쳐져서 새로운 커밋을 만들어 내기 때문에 3-way-merge 라고 합니다.
git rebase branchName
기본적으로는 이렇게 사용해요.
rebase는 말 그대로 base를 다시 지정한다는 말입니다.
// git rebase의 그래프
// 1의 base가 2로 재지정
// 이전 커밋들과 합치는 커밋이 그래프에 남지않음
/--o--2--/3--o--o
/
o--o--o--o
위에 git merge와는 다른 그래프가나오는걸 볼 수 있죠?
리베이스는 Git의 커밋 그래프를 깔끔하게 유지하기 위해 사용해요.
// 과정
git rebase 브랜치이름 or git merge 브랜치이름
비상! 컨플릭트남!
수정하셈
git add.
git rebase --continue
----------------------
(merge라면)
git commit -m" merge했어용~"
워땠나용?
이렇게 간단하게 merge의 방법과 특징을 알아봤는데용
이렇게 사용한답니다.