Git 병합이 파일 이름 변경과 충돌


0

BitBucket에는 간단한 구조의 개인 Git 리포지토리가 있습니다. 마스터는 릴리스 용이며 때로는 그와 병합되는 dev 브랜치가 있습니다. 개인을위한 개발 부서에는 두 개 이상의 지점이 있습니다. 최신 Tortoise Git을 사용하고 있지만 gitbash 또는 다른 도구를 사용할 수 있습니다. 우리는이 패턴을 따릅니다

dev에서 가져 오기, 분기 mybranch 작성, 변경 / 커밋 / 변경 / 커밋, 푸시 dev로 변경하고 mybranch에서 최근 커밋을 병합 + 스쿼시하고 커밋하고 푸시하십시오.

작동하는 것 같습니다. mybranch와 dev 브랜치는 모두 예상되는 것을 보여줍니다.

다음 : mybranch에서 폴더 이름을 바꾸고 커밋하고 푸시합니다. 그런 다음 해당 변경 사항을 dev로 병합하십시오. dev로 변경하고 mybranch에서 최근 커밋을 병합 + 스쿼시하십시오. 이로 인해 충돌이 발생합니다.

왜 이것이 특별한 경우인지 또는 해결 방법을 이해하지 못합니다. 이름이 바뀐 디렉토리는 삭제 및 추가로 표시되지 않습니다. 이와 같이 이동 또는 이름이 변경된 파일이 몇 개 있으면 로컬 dev 분기가 부분적으로 업데이트되고 쓸모없는 부분 업데이트 상태로 끝납니다.

나는 rebase, clean, re-clone, merge를 중단하기 위해 여러 가지 방법을 시도했다. 그렇지 않으면 깨끗한 dev로 돌아가서 mybranch에서 하나 이상의 커밋의 병합을 다시 시도 할 수있다. 나는 mybranch에서 dev로 커밋 한 것을 체리 선택하려고 시도했지만 여전히이 이상한 상태로 들어갑니다.

mybranch를 누른 후 비슷한 변경 사항으로 분기 (dev)를 업데이트 한 다음 충돌하는 변경 사항이있는 업데이트를 다시 시도하면 충돌이 발생할 수 있음을 알고 있습니다. 이 시나리오는 아닙니다. 이 시나리오에서는 dev와 mybranch를 업데이트 한 유일한 사람입니다.

나는 결국 개발자와 mybranch 사이에서 개별 변경 사항을 동기화하는 방법을 알아낼 수 있다고 확신합니다. 사실, 패턴을 감안할 때 최근에 dev를 업데이트 한 유일한 사람이라면 mybranch를 dev로 강제로 밀어 넣을 수 있으며 필요한 모든 것을 가질 수 있습니다.

그러나 이것이 왜 FUBAR인지 이해하고 싶습니다. 알려진 버그를 다루고 있습니까? 올바른 패턴을 따르지 않습니까? RTFM을 수락하지만 누락 된 부분을 정확히 알아야합니다. 감사.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.