Git Merge와 함께 theirs 사용
Git 도구를 사용하여 소프트웨어를 개발하는 동안 다양한 기능에 대해 다른 분기를 만들 수 있습니다. 그러나 다른 지점 간에 충돌이 있을 수 있습니다.
이 기사에서는 git merge 명령을 irs 옵션과 함께 사용하여 충돌을 해결하는 방법에 대해 설명합니다.
Git에서 theirs와 함께 git merge 명령 사용
git merge 명령은 둘 이상의 개발 기록을 결합할 수 있습니다. 그러나 이 병합은 분기 간의 충돌로 인해 수행되지 않는 경우가 있습니다.
이 충돌을 해결하려면 ours 또는 irs에 있는 파일을 삭제해야 합니다.
ours는 Git 히스토리의 권한을 가진 원래 작업 분기를 나타내고 irs는 새로 적용된 커밋이 포함된 분기를 나타냅니다.
git merge -s ours를 사용하여 ours의 변경 사항을 취소할 수 있습니다. 이 명령은 다른 분기의 모든 변경 사항을 무시하고 분기의 파일을 변경하지 않은 상태로 둡니다.
다음에 다른 브랜치에서 병합할 때 Git은 이 시점부터 변경된 사항만 고려합니다. 그러나 -s 옵션은 그들과 함께 사용할 수 없습니다.
--strategy-option을 사용하여 Git의 충돌 해결
또는 -X 또는 --strategy-option 옵션과 함께 theirs를 사용할 수 있습니다.
-X 옵션과 -s 옵션의 주요 차이점은 -X는 일반 재귀 병합을 수행하여 선택한 면을 사용하여 충돌을 해결하는 반면 -s는 다른 면을 완전히 무시하도록 병합을 변경한다는 것입니다.
다음 명령은 theirs를 사용하여 충돌을 해결합니다.
git merge -X theirs branchname
임시 분기를 사용하여 Git에서 병합
아래 명령을 사용하여 test2를 체크아웃된 test1에 병합합니다.
test1 분기로 전환합니다.
git checkout test1
충돌 없이 커밋을 병합합니다. ours의 내용은 나중에 폐기됩니다.
git merge -s ours test2
임시 분기를 만듭니다.
git branch temp
git reset 명령으로 HEAD를 설정합니다. test2 분기에서 내용을 가져옵니다.
git reset --hard test2
병합된 커밋으로 재설정하되 git reset --soft 명령으로 내용을 유지합니다.
git reset --soft temp
병합된 커밋의 내용을 test2의 내용으로 변경합니다.
git commit --amend
이전에 만든 임시 분기를 삭제합니다.
git branch -D temp
병합된 커밋에는 test2의 내용만 포함되어 있음을 알 수 있습니다.
git diff HEAD test2
Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.
LinkedIn