-
git merge
머지는 각 분기된 커밋을 하나의 커밋으로 다시 합치고 싶을때 사용하는 명령어
merge를 하기 위해선 기본이되는 커밋을 선택해 해당 커밋으로 체크아웃 -> git merge 합병원하는 브랜치 이름
- 3way merge
서로 다른 브랜치의 커밋을 머지할 경우 발생 충돌에 대해서 깃은 3way merge라는 방법을 통해 충돌을 해결한다. 이를 조금 더 자세히 살펴보면
1. 3way merge는 base의 내용을 참고한다. (base에서 해당 파일이 어떤 내용을 담고 있었는지를 파악한다.)
2. 한 브랜치의 파일만 바뀐 경우 바뀐 쪽으로 변경이 된다. (바뀐 쪽이 더 진보된것이므로..?)
3. 두개 다 바뀌지 않았을 때는 base의 내용을 그대로 따른다.
2. 이름이 같은 두 파일의 내용이 서로 다르게 바뀌었을 때는 사용자가 직접 수정을 해야 한다.- fast-forward merge
패스트 포워드란 뿌리가 되는 브랜치에 변화가
주어지지 않은 채 다른 변화가 생긴 브랜치로
머지를 하게 되는 것 그러면 새로운 커밋이 생성되지 않고
머지를 한 대상 브랜치의 마지막 커밋에 뿌리가 되는
브랜치가 자리잡게 된다.그림참조> 지옥에서 온 관리자 Git 13강 - Git branch 기본개념 - YouTube
fast forward
login.txt, buysomething.txt 생성
git branch : branch 목록을 보여준다
git branch [branch name] : branch name 생성
실제 git log 를 해보면 각 branch 의 head를 보여준다.
git checkout [branch name] : branch name 으로 branch 변경 -> 변경된 branch 에서 checkLog.txt 생성
git checkout master → 머지하고싶은 branch로 이동
git merge [branch name]을 하여 원하는 branch를 합치면 된다.
3way merge
join.txt, login.txt 를 master로 만든후 commit → git checkpoint -b [branch name] : 새로운 브랜치 생성후 checkout
new branch 에서 idLogCheck.txt 생성후 commit
git checkout master → touch write.txt → git add & commit 후 로그
그림을 그리면 왼쪽 그림처럼 나온다 → merge를 하면 오른쪽 그림처럼 되는데 이때 3way merge가 된다.
branch master 에두고 merge 를 하면 conflict 가 나지 않는다는 전제하에 합쳐진다.
'GIT' 카테고리의 다른 글
Git의 간단한 기능들 (0) 2022.01.18 Github push, pull, clone (0) 2022.01.13 merge conflict (0) 2022.01.06 Git Reset & Reflog (0) 2022.01.04