2017-03-04 11 views
1

다음은 시나리오입니다.git - confilicts 처리 방법

사용자 A와 B는 동일한 소스 코드를 가지고 있습니다. 사용자 A는 => 추가 => 커밋 => 푸시를 변경합니다. 원격 저장소의 소스 코드가 변경되었습니다.

사용자 B가 당기기 않고 변경되기 시작합니다. (또는 원격 저장소의 변경은 사용자 B가 저장소를 가져온 후에 에 적용됩니다.) 그런 다음 그는 또한 밀기를 원합니다. 이 순간에 갈등이 발생합니다. 검색 횟수가 많아 해결 방법을 찾을 수 없지만 은 (는) 수동으로 충돌을 편집합니다.

질문 : 수동으로 충돌을 효율적으로 편집합니까? 특히 큰 프로젝트에? 접근 방식은 무엇입니까?

+0

[Git에서 병합 충돌을 해결하는 방법] 가능한 복제본 (영문) (http://stackoverflow.com/questions/161813/how-to-resolve-merge-conflicts-in-git) – 1615903

답변

1

수동으로 병합 충돌을 관리하는 것은 번거로운 작업이 될 수 있습니다.

시도 git mergetool기본값 인 mergetool이 열립니다. 먼저 mergetool을 설치해야합니다. 당신이 충돌과 같은 meld, opendiff, kdiff3, tkdiff, xxdiff, tortoisemerge, gvimdiff, diffuse, ecmerge, p4merge, araxis, vimdiff, emerge를 해결하는 데 도움이되는 몇 가지 mergetools이 있습니다.

설치가 끝나면 설치 한 mergetool이 열리고 gui이 제공되며 각 충돌을 처리 할 수있게되고 병합 방법을 선택할 수 있습니다.

IntelliJ과 같은 IDE를 사용하는 경우 병합 충돌을 수정하기위한 도구가 제공됩니다.

+0

감사합니다. 또한 거기에 숭고한 편집자를위한 좋은 것들이 보인다. 'sublimerge'처럼 –

1

수동 충돌 해결 방법입니다. 충돌은 개발자 B가 변경된 일부 코드를 사용함을 의미합니다. 이는 개발자 A가 변경 한 사항에 코드를 적용해야한다는 것을 의미합니다. 즉,이 충돌을 해결하는 것입니다.

때때로 충돌이 자동으로 해결 될 수 있습니다. 때로는 "우리 자신의 것"과 같은 옵션을 선택하기 만하면 해결할 수 있습니다. 그러나 git의 의미에서 충돌이 없더라도 코드를 수정해야 할 수도 있습니다.

예 : 일부 인수를 허용하는 some_func 함수가 있습니다. 개발자 A는 some_new_name으로 이름을 바꿉니다. 개발자 B는 완전히 별도의 코드 영역에서 some_func에 대한 호출을 추가합니다. 병합은 충돌없이 이루어 지지만 코드는 제대로 작동하지 않습니다.

실제로 충돌이 발생하는 것이 더 좋을 수도 있습니다. 작성한 코드가 변경되어야한다는 조기 경고가 표시됩니다.