Git - git fetch / git merge / git fast-forward / 로컬브랜치와 원격 저장소 브랜치 이름이 다를 때 / -Xours, Xtheirs

mil nil·2023년 1월 6일
0
  • git fetch + git merge = git pull
    -> git pull은 한 번에 진행하지만 git fetch를 사용하면 git merge를 하기 전에 불러온 변경사항을 변경 전에 확인이 가능하다.
  • fast-foward: 동일한 기반의 브랜치를 변경사항을 추가하여 Merge할 때, Merge하는 것이 아니라 변경된 커밋을 가리키도록 이동시키는 것
    -> 충돌 발생으로 커밋 이동만으로 불가능한 경우 git에서 직접 문제를 수정해주어야 한다. 이런 방식을 'non fast-forward 병합'이라고 한다.
  • 로컬 브랜치: feature4-re, 원격 브랜치: origin/feature4일 때 아래와 같이 멍령어를 입력하면 된다.
git push origin feature4-re:feature/4
  • git merge 할때 conflict가 많이 나는 경우 한쪽 브랜치를 기준으로 병합하도록 미리 옵션을 줄 수 있다.

    -> git merge -Xours targetBranch 현재 브랜치 기준으로 덮어쓰기
    ( ours 우리 소스를 쓸게! use our sources )
    -> git merge -Xtheirs targetBranch 타겟 브랜치 기준으로 덮어쓰기
    ( theirs 걔네 소스를 쓸게! use thier sources )

참조: [번역] : Git fetch와 pull, pull은 이제 그만!
참조: 3.2 Git 브랜치 - 브랜치와 Merge 의 기초
참조: 6. 병합할 때 발생하는 충돌 해결하기
참조: git merge 할때 한쪽 브랜치 내용 선택하기

profile
자바 배우는 사람

0개의 댓글