program tip

패치를 적용 할 때 충돌을 해결할 수있는 방법이 있습니까?

radiobox 2020. 7. 30. 10:18
반응형

패치를 적용 할 때 충돌을 해결할 수있는 방법이 있습니까?


나는 창문에 있습니다.

여러 가지 이유로 우리는 다른 svn 브랜치의 git 인스턴스를 여러 개 가지고 있습니다.

여러 번 리포지토리 A에서 문제를 해결하고 패치를 생성하여 리포지토리 B에 적용하려고합니다. 충돌이있는 경우를 제외하고는 제대로 작동합니다.

rebasing 할 때 폴더를 마우스 오른쪽 버튼으로 클릭하고 tortioseGit을 사용하고 resolve 옵션을 선택하십시오. 이것은 내 갈등을 해결할 수있는 멋진 GUI를 불러옵니다.

거부 된 패치 청크로이를 수행 할 수있는 방법이 있습니까?

패치를 작성 / 적용하는 현재 접근 방식은 다음과 같습니다.

git format-patch master --stdout > c:\\patch\\file.patch
git apply --reject --ignore-space-change --ignore-whitespace c:\\patch\\file.patch

패치를 생성하려면 다음을 수행하십시오.

git format-patch --stdout first_commit^..last_commit > changes.patch

이제 패치를 적용 할 준비가되면 다음을 수행하십시오.

git am -3 < changes.patch

-3충돌이 발생하는 경우 삼원 병합을 할 것입니다. 이 시점에서 당신은 할 수 있습니다 git mergetool당신이 GUI로 이동하거나 수동으로 (표준 정력을 사용하여 파일을 병합 할 경우 <<<<<<, ||||||, >>>>>>갈등 해결을).


패치, 리베이스 또는 병합을 적용 할 때 동일한 충돌 세트가 자주 발생하는 경우 git rerere (기록 된 해상도 재사용) 기능을 사용할 수 있습니다. 이를 통해 과거에 해결 된 방법에 따라 충돌 해결 방법을 미리 정의 할 수 있습니다. 작동 방식에 대한 자세한 내용은 http://git-scm.com/blog/2010/03/08/rerere.html참조하십시오 .


TortoiseGit에는 패치 파일을 열 수있는 병합 기능이 있습니다.

여기 사진이 있습니다 .


내 접근 방식은 다음과 같습니다

  • 파일이 동일한 "통합"브랜치를 작성하십시오.
  • 이 통합 지점에 패치를 적용하십시오
  • 마스터로 병합 또는 리베이스 (추가 패치를 적용 할 때 어떤 일이 발생하는지 알 수 없으므로 여기에서 리베이스가 유용한 지 모르겠습니다)

참고 URL : https://stackoverflow.com/questions/16190387/when-applying-a-patch-is-the--re-any-way-to-resolve-conflicts

반응형