티스토리 뷰

반응형

 

 

 

 

브랜치끼리 머지하다 보면 충돌이 나서 해당 부분을 해결해야 하는데

가끔 브랜치의 내용을 유지하면서 특정 브랜치의 내용을 전부 엎어버릴때?

아니면 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

 

 

 

 

 

 

※ 이 외에도 브랜치를 덮어쓰는 방법은 여러가지가 있으니,

    상황과 용도에 맞게 덮어쓰는 방식을 사용하시면 될 것 같습니다.

 

 

 

 

 

 


참고링크
 

devkimson :: [GIT] 깃 브랜치 덮어쓰기

깃 브랜치 덮어쓰기 main 브랜치를 새로운 브랜치로 교체할 일이 생겨 시도하다보니 아래와 같은 메세지가 나왔습니다.

kkn1125.github.io

 

 

 

 

반응형
댓글
반응형
최근에 올라온 글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Total
Today
Yesterday