git merge 할때 conflict 가 많이 나는 경우가 있다.
겹칠때 한쪽 브랜치를 선택하도록 미리 옵션을 줄 수 있다.
git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-%EA%B3%A0%EA%B8%89-Merge
merge 명령을 사용할 때 -Xours 나 Xtheirs 옵션을 추가하면 된다.
git merge -Xours targetBranch 현재 브랜치 기준으로 덮어쓰기 ( ours 우리 소스를 쓸게! use our sources)
git merge -Xtheirs targetBranch 타겟 브랜치 기준으로 덮어쓰기 ( theirs 걔네 소스를 쓸게! use thier sources)
원문 글 가져옴
Our/Their 선택하기
먼저 일반적인 “recursive” 전략을 사용하는 Merge 작업을 할 때 유용한 옵션을 소개한다. 앞에서 ignore-all-space 와 ignore-space-change 기능을 -X 옵션에 붙여 쓰는 것을 보았다. 이 -X 옵션은 충돌이 났을 때 어떤 한 쪽을 선택할 때도 사용한다.
아무 옵션도 지정하지 않고 두 브랜치를 Merge 하면 Git은 코드에 충돌 난 곳을 표시하고 해당 파일을 충돌 난 파일로 표시해준다. 충돌을 직접 해결하는 게 아니라 미리 Git에게 충돌이 났을 때 두 브랜치 중 한쪽을 선택하라고 알려줄 수 있다. merge 명령을 사용할 때 -Xours 나 Xtheirs 옵션을 추가하면 된다.
Git에 이 옵션을 주면 충돌 표시가 남지 않는다. Merge가 가능하면 Merge 될 것이고 충돌이 나면 사용자가 명시한 쪽의 내용으로 대체한다. 바이너리 파일도 똑같다.
“hello world” 예제로 돌아가서 다시 Merge를 해보자. Merge를 하면 충돌이 나는 것을 볼 수 있다.
$ git merge mundo
Auto-merging hello.rb
CONFLICT (content): Merge conflict in hello.rb
Resolved 'hello.rb' using previous resolution.
Automatic merge failed; fix conflicts and then commit the result.
하지만 -Xours 나 -Xtheirs 옵션을 주면 충돌이 났다는 소리가 없다.
$ git merge -Xours mundo
Auto-merging hello.rb
Merge made by the 'recursive' strategy.
hello.rb | 2 +-
test.sh | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
create mode 100644 test.sh
'프로그래밍' 카테고리의 다른 글
solidity 디앱개발 시작 (0) | 2021.06.17 |
---|---|
git rebase 하는 방법 (0) | 2021.05.14 |
리액트 useMemo 사용하기 (0) | 2021.05.06 |
개발자의 이력서 작성하기 (1) | 2021.04.26 |
기술 면접에 자주 나오는 질문들 - 인덱스 (0) | 2021.04.23 |
댓글