프로젝트를 TFS에서 git로 변환하는 중입니다. 모든 기록을 유지하려고합니다.다른 저장소 위에 자식 저장소를 추가하는 방법
문제는 TFS 프로젝트가 1 년 전에 TFS에서 옮겨졌습니다. git-tfs 사용 두 위치를 모두 git로 변환 할 수 있지만 이제는 두 개의 git 저장소 (A와 B)가 있습니다.
저는 A와 B를 서로 다른 저장소와 동일한 저장소로 가져올 수있었습니다. B에서의 첫 번째 커밋의 부모를 A에서의 마지막 커밋으로 변경할 수 있습니까?
Branch A: a -> b -> c
Branch B: d -> e -> f
내가
a -> b -> c -> d' -> e' -> f'
솔루션 갖고 싶어 :
git filter-branch --parent-filter 'sed "s/^\$/-p <last-commit-in-A>/"' HEAD_OF_B
git 리포지토리가 히스토리를 공유하지 않기 때문에 작동하지 않습니다. A의 마지막 커밋과 B의 첫 커밋은 똑같은 내용을 가지고 있습니다. 그러나 SHA1 해시는 동일하지 않습니다. 두 repos는 TFS에서 변환되었습니다. – sighol
@sighol "작동하지 않음"이란 무엇을 의미합니까? 나는'git merge'를 예로 사용했습니다. 아마도'git rebase'가 여러분의 상황에 더 적절할 것입니다. –
2 개의 브랜치가 관련없는 커밋을 가지고 있기 때문에'git merge' 또는'git rebase'가 작동하지 않을 것이라고 생각합니다. 브랜치 A : a -> b -> c 브랜치 B : d -> e -> f 두 개의 브런치는 완전히 관련이 없습니다. 이 기록을 원합니다. a -> b -> c -> d '-> e'-> f ' rebase는 병합 커밋을 제거하므로 rebase를 사용할 수 없습니다. – sighol