우리는 공통 마스터 브랜치와 많은 병렬 브랜치가있는 웹 애플리케이션을 유지합니다. 각 설치마다 하나씩, 각각 특정 변경 사항이 거의 없습니다. 소스 코드는 git에서 관리되며 마스터 브랜치에서 병렬 브랜치로 전송 기능과 버그 수정이 필요할 때 훌륭한 도구입니다. 그러나 민감하고 자동 병합이 일반적으로 나쁜 결과를 제공하는 파일은 거의 없습니다. 따라서 병합이 어떻게 든 표시 될 수 있고 모든 병합으로 인해 수동 병합이 필요한 충돌이 발생하면 훨씬 더 쉬울 것입니다.
나는 대답을 찾았다.
- 내가 사용하고 --no이 커밋 및 --no-FF 병합 옵션을하지만 동일하지 않습니다.
- 여기 와 여기 누군가가 같은 질문을하지만 해결책이 없습니다.
- 비슷한 경우는 somefile.php merge = ours를 포함하는 .gitattributes를 사용하여 파일이 병합되는 것을 방지하는 방법 인 것 같습니다 . 충돌을 생성하거나 수동 병합을 강제하는 병합 옵션을 찾으려고했지만 지금까지 아무것도 찾지 못했습니다.
- 다음을 포함하는 .gitattributes : somefile.php -merge 는 자동으로 병합되지 않으므로 강제로 병합됩니다. 90 % 해결책이지만 내가 추구하는 것은 자동 병합을 시도하고 성공 여부에 관계없이 충돌로 표시하는 것입니다. 그러나 이것은 지금까지 해결책에 가장 가깝습니다. (... 명확한 설명을 위해 Charles Bailey에게 감사드립니다 ...)
- 누군가 사용자 지정 병합 드라이버 ( 1 , 2 ) 를 작성하도록 제안 했지만 어떻게 수행하는지 명확하지 않습니다.
편집 : 변형 4. 설명
git fetch
먼저 한 다음을 사용git difftool <file> FETCH_HEAD
하여 원격 분기의 변경 사항을 로컬에 수동으로 적용 할 수 있습니다.