-
Ch10. MergingRay Wenderlich/Mastering Git 2021. 8. 21. 16:32
Three-way merges
2개의 수정을 merge할 때, 각각의 수정 사항을 합치는 것을 생각해보자.
이 것은 two-way merge이고, 우리가 실제로 이해하기 쉬운 방식이다.
git은 Three-way merge를 한다.
파일의 변경을 마친 상태 그대로 mere하는 것이 아닌 original 파일으로부터 수정된 사항을 merge하는 것이다.
merge conflict가 발생하는 경우를 제외하면 git은 three-way merge를 통해 오류없이 merge해줄 것이다.
Merging a branch
git log <theirs> --not <ours>
theirs에는 있지만 ours에는 없는 commit을 보여준다.
Fast-forward merge
original 파일을 나 말고 아무도 건드리지 않았다면 Fast-forward merge가 가능하다.
merge commit이 생기지 않고 HEAD만 이동하게 된다.
Forcing merge commits
# fast-forward merge를 하지 않고 merge git merge develop --no-ff
**
Fast-forward merge가 좋냐 안좋냐
이건 마치 킹냥이 갓댕이 누가 더 귀엽냐와 같은 논쟁이다.
(난 무조건 갓댕이파임, 킹냥이도 귀여운데 비교불가임)
정답은 없다.
항상 merge commit을 생성한다면 branch를 만들고 merge했다는 기록이 남는다. 근데 매번 기록을 남긴다면 레포지터리의 history가 복잡해질 수 있다.
'Ray Wenderlich > Mastering Git' 카테고리의 다른 글
Ch12. Merge Conflicts (0) 2021.08.23 Ch11. How Does Git Actually Work? (0) 2021.08.23 Ch9. Creating a Repository (0) 2021.08.21 Ch8. Syncing With a Remote (0) 2021.08.21 Ch7. Branching (0) 2021.08.06