문제

두 가지의 코드를 'Git Merge'명령과 결합하려고하지만 프로세스 중에 Git이 충돌하고 있습니다. 이 지점을 병합하는 대안적인 방법을 찾아야합니다.

Debug 레벨로 병합 출력을 늘리려면 다음을 수행했습니다.

    $ export GIT_MERGE_VERBOSITY=5

나는 현재 목적지 지점에 있습니다. git-status는 모든 것을 깨끗하고 명확하게 보여줍니다. 지점을 병합 할 때, 이것이 내가 보는 것입니다 (체크인 댓글을 %%%%%%로 대체하고 비즈니스에 민감 할 수 있으므로 #######이있는 파일 이름을 대체했습니다).

$ git merge origin/PH-RELEASE-146.0
Merging HEAD with origin/PH-RELEASE-146.0
Merging:
8399d82 %%%%%%
4f9dcfe %%%%%%
found 2 common ancestor(s):
e0a5fa1 %%%%%%
ce62bf1 %%%%%%
  Merging:
  e0a5fa1 %%%%%%
  ce62bf1 %%%%%%
  found 1 common ancestor(s):
  af34a07 %%%%%%
  Skipped ######## (merged same as existing)
  Removed ########
  Removed ########
  ...
  Removed ########
  Auto-merged build
  CONFLICT (submodule): Merge conflict in build - needs b3efae4855bc5eb83aa3167ce6c309a4503c3286
  There are unmerged index entries:
  1 build
  2 build
  3 build
Merge with strategy recursive failed.

이 시점에서 Git-Merge가 추락 한 것으로 나타났습니다. 이것을 어떻게 알 수 있습니까? - Cygwin에서 git을 실행할 때 :

$ git merge origin/PH-RELEASE-146.0

     11 [main] git 4352 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack)

Segmentation fault (core dumped)
  • Linux에서 Git을 실행할 때 'Ulimit -C Unlimited'를 사용하여 :
    $ ulimit -c unlimited; ls -l core; git merge origin/PH-RELEASE-146.0; ls -l core
    ls: cannot access core: No such file or directory
    Merging HEAD with origin/PH-RELEASE-146.0
    ...
    ...
    Merge with strategy recursive failed.
    -rw------- 1 user group 1589248 Jul 29 12:48 core
  • 두 경우 모두 .git/index.lock이 남아 있으며 GIT 명령이 다시 작동하기 전에 수동으로 삭제해야합니다.

    $ git 상태 치명적 : 생성 할 수 없음 '.git/index.lock': 파일이 존재합니다.

커밋 ID를 GITK 트리의 것과 비교하여 위의 병합을 수동으로 걸었습니다. Git이 공통 조상을 찾고 있고 합병을 조각으로 깨고 각 조상을 재귀 적으로 다루고 있다는 것이 분명해 보인다. 그러나 문제를 일으킨 것은 "빌드"라는 하위 모드에 대한 "git-link"가 Commit e0A5FA1과 CE62BF1 사이에 변경되었다는 것입니다.

  • E0A5FA1에서 서브 모듈 빌드는 8DC84B6입니다.
  • CE62BF1에서 하위 모듈 빌드는 B3EFAE4입니다.

분명히 갈등이 있습니다. 그러나 "부분적"합병 또는 마지막이 아닌 부름을받는 것은 갈등입니다. 그리고 Git은 이것을 전혀 잘 처리하지 못하는 것 같습니다.

좋아, 아마도 버그가있을 것입니다 - 버그 보고서를 어떻게 제출할 것인가?

그러나 내가 여기서 정말로 걱정하는 것은이 두 가지를 합병 할 수 없다는 사실입니다. 'Merge'명령을 사용하지 않고이 지점을 모으는 대안적인 방법을 아는 사람이 있습니까? 전체 병합 프로세스 에서이 하위 모드를 완전히 무시할 'git-merge'를 얻을 수 있습니까?

Linux Git 버전 1.6.0.4

Cygwin Git 버전 1.6.1.2

도움이 되었습니까?

해결책

Linux에서 Git을 업그레이드하십시오. 1.6.3.3은 최신입니다. 이것이 William의 아이디어를 시도하는 데 도움이되지 않는다면 최신입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top