"merge git repositories"를 사용하여 모든 사람이 다른 것을 이해하므로 여기에 제 경우가 있습니다. 우리는 TFS 저장소를 가지고 있으며, 한 번에 소스를 체크 아웃하고 초기 git commit을 만들었습니다. 그런 다음 git (분기, 병합 등)에서 정상적인 개발을 수행했습니다. 문제는 새로운 저장소에서 git 저장소에 기록이 없으므로이를 수정하려고한다는 것입니다. 따라서 전체 TFS 저장소를 git 저장소로 변환했으며 현재 변환 된 TFS 저장소를 현재 git 저장소와 병합해야합니다.git 저장소에 병력 추가 또는 git 저장소 병합
위의 설명에서 분명해 지듯이 저장소는 git 관점과는 독립적이지만 논리적 인 측면에서 볼 때 공통점이 있습니다 (현재 git 저장소에 처음 커밋 된 커밋).
리포지토리의 병력을 잃지 않고 병합하려면 어떻게해야합니까? 변환 된 TFS 저장소를 기본 저장소로 사용하고 체리가 현재 저장소의 마스터에서 변경 사항을 선택하지만 현재 저장소에서 생성 된 모든 저장소는 가져 오지 않습니다.
"오픈 지사"란 무엇을 의미합니까? 후속 리베이스로 인해 다른 지점의 모든 커밋이 한 지점 (낡은 마스터, 충돌이 없다고 가정)에 겹쳐 쌓이게되지 않을까요? –
아니요, newrepo/master 브랜치는 oldmaster, newrepo/branch1 등에서 시작하도록 리베이스됩니다. 이것은 이전 리포에는 하나의 브랜치 만 있다고 가정합니다. "오픈 브랜치"란 말은 git 리포지토리에서 리베이스 할 마스터와 다른 모든 브랜치를 의미합니다. 최종 결과는 oldmaster의 내용이 새로운 git repo의 각 지점 앞에 추가되어야합니다. 결국 각 rebase 전에 재배치 할 브랜치로 전환해야합니다.(git checkout newrepo/branch1; git rebase oldmaster) – p91paul
newrepo의 모든 브랜치는 처음에 git로 가져온 커밋에서 가져온 것이므로 나중에 다른 브랜치를 많이 만들었더라도 하나의 "오픈 브랜치"만 있다고 가정합니다. 이 출발점이 맞습니까? 하지만 내 oldrepo에는 과거의 안정적인 릴리스에 대한 몇 가지 분기가 포함되어 있는데 어떻게 상황이 바뀌 었습니까? –