git에 대한 프로세스는 주기적으로 마스터 분기로 병합되므로 변경 내용을 최신 기능 분기로 병합 할 수 있습니다. 한 지점에서 다른 지점으로 병합되는 최신 라운드가 있기 때문에 우리는 해결책이 명확하지 않은 문제에 직면 해 있습니다.병합 기반 오류를 따르지 않는 이유는 무엇입니까?
우리는 그 안에 19 개의 서브 모듈이있는 저장소를 가지고 있습니다. 모든 서브 모듈의 병합을 수행 할 때 우리는 수정 된 파일, 충돌 등을 알려주는 예상 출력을 봅니다. 그런 다음 "루트"저장소의 병합에 도달하면 모든 것이 남쪽으로 가고 일부는 (문제를 지적하기 위해 편집 됨).
warning: Failed to merge submodule projects/foo1 (commits don't follow merge-base)
warning: Failed to merge submodule projects/foo2 (commits don't follow merge-base)
warning: Failed to merge submodule projects/foo3 (not fast-forward)
Found a possible merge resolution for the submodule:
931a61165f3b2079523a122477fa5f44c123406d: Comment of last merge
If this is correct simply add it to the index for example by using:
git update-index --cacheinfo 160000 931a61165f3b2079523a122477fa5f44c123406d "projects/foo3"
which will accept this suggestion.
이제 git update-index
명령을 실행할 수 있습니다. 그 하나의 서브 모듈에 대해 자식을 행복하게 만들지 만, 우리는 전에 이것을 실행할 필요가 없습니다. 도움말이 표시되지 않는 foo1 및 foo2 서브 모듈을 볼 때 문제가 실제로 발생합니다. 자신의 질문 아래의 경우 영업 이익의 의견에
하위 모듈을 수정할 때마다 부모 레포를 커밋하고 푸시 했습니까? – VonC
병합하기 전에 두 트리는 서브 모듈에서 누락 된 커밋의 문제없이 완벽하게 작동합니다. 이게 네가 말하는거야? – Peter
하위 모듈을 수정할 때 하위 모듈의 SHA1이 변경되었으므로 하위 모듈을 수정할 때 반드시 커밋하고 밀어 넣기, 부모로 이동, 커밋 및 푸시해야합니다. 난 당신이 부모 repo를 병합하기 전에, 그 서브 모듈 (그리고 만약 당신이 커밋 - 푸시 시퀀스를 수행 한 경우)에 대한 수정을했는지 궁금 해서요. – VonC