티스토리 뷰
반응형
브랜치끼리 머지하다 보면 충돌이 나서 해당 부분을 해결해야 하는데
가끔 브랜치의 내용을 유지하면서 특정 브랜치의 내용을 전부 엎어버릴때?
아니면 test 브랜치의 경우 특정 브랜치 것을 그대로 가져오고 싶을 때가 있을때가 있는데...
(보통은 그 특정 브랜치에서 다시 테스트 브랜치를 따서 시작하겠죠?)
위의 여러 상황에 따라 머지해야하는 경우,
너무 버전차이가 나버리면 충돌파일이 너무 많아서 해결을 할 수가 없기 때문에
두 브랜치 중 한쪽을 선택하라고 알려주면 덮어쓸 수 있게 된다.
그 깃 명령어는 다음과 같다.
git checkout test
git merge -Xtheirs dev
test 브랜치를 dev 브랜치로 병합하면서 충돌내용을 dev로 덮어써라 !
위 명령어를 사용하면 충돌되는 내용을 dev 내용으로 대체하고
충돌되지 않는 사항은 test 내용이 유지됩니다.
theirs를 ours로 변경하면
git checkout test
git merge -Xours dev
test 브랜치를 dev 브랜치에 병합하면서 충돌내용을 test로 덮어써라! 가 됩니다.
모든 내용을 강제로 덮어쓰고 싶을때는 강제 푸시로 덮는 방법도 있습니다.
test 브랜치의 모든 내용을 dev로 바꿔버립니다.
git checkout dev
git reset --hard test
git push origin dev --force
※ 이 외에도 브랜치를 덮어쓰는 방법은 여러가지가 있으니,
상황과 용도에 맞게 덮어쓰는 방식을 사용하시면 될 것 같습니다.
참고링크
반응형
'형상관리 > Git' 카테고리의 다른 글
댓글