git 저장소를 tfs git으로 마이그레이션해야합니다. 처음으로 이전하는 것이므로 기록 데이터를 그대로 유지하는 것이 중요합니다. 어떤 생각이 그렇게하는 방법?모든 역사적인 커밋을 유지하면서 Git 저장소를 tfs Git으로 마이그레이션
답변
, 그들은 지역 클론에서 전송되지 않습니다. 그것이 바로 - 미러가 도움이되는 것입니다.
git clone --mirror source
git push --mirror target
마술. Full documentation can be found here. 로컬 repo에 푸시하고 푸시하면 현재 브랜치와 히스토리가 푸시되지만 현재 마스터 리포지토리의 모든 객체를 푸시하지 않을 수 있으며 로컬 복제본에 없으면 모든 태그와 레이블을 푸시하지 않습니다 .
가져 오기 리포지토리는 로컬에서 저장하고 소스에서 직접 가져올 수 있기 때문에 도움이됩니다. 로컬 리포를 만든 다음 밀어 넣는 것보다 훨씬 빠릅니다. It's supported in VSTS, TFS 2017u1+ and TFS2018. 그러나 두 서버간에 직접적인 시선이 필요하며 대체 자격 증명 또는 개인 액세스 토큰을 설정해야 할 수도 있습니다.
지역의 복제 방법 :
LOCAL <- SOURCE
LOCAL -> TARGET
가져 오기 저장소 옵션 :
이TARGET <- SOURCE
tfs git 저장소로 이전하는 것은 다른 git 저장소로 이전하는 것과 같습니다. 다음에는 원본 저장소가 필요합니다 (복제본). tfs의 git repo가 원격 저장소가됩니다.
먼저 리모컨의 URL을 찾습니다. TFS 웹 UI에서이를 얻을 수 있습니다. repo가 처음 생성 될 때 얻는 지침 페이지에서 또는 repo가 이미 tfs에있는 경우 "복제본"버튼을 클릭하여 URL을 얻을 수 있습니다.
그러면 로컬 리포지토리에 원격 저장소로 추가합니다.
git remote add tfs url/of/remote
그런 다음 리모컨으로 참조를 푸시합니다. 자식은 자동으로 전체 기록을 보냅니다. 원격에서 모든 태그를 밀어하려면 당신이 명시 적으로 가져온 후 명시 적으로 추진하지 않는 한
git push --all tfs
당신은 TFS의 버전을 사용합니까? TFS 2017 Update1 또는 이후 버전을 사용하는 경우 TFS에서 Import a Git repo을 직접 수행 할 수 있습니다.
이전 버전에서는 jessehouwing 또는 Mark의 답변을 따를 수 있습니다. 그리고 개인적으로 나는 git clone --mirror source
가 훨씬 낫다고 생각합니다.
또한이 스레드를 참조 할 수 있습니다 https://gist.github.com/niksumeiko/8972566
예, 저는 jessehouwing 솔루션을 따라 갔고 저에게 도움이되었습니다. – Mindan
'자식이 새 위치로 --mirror' 끌어 수행하기 위해 더 좋을 것이다. 또는 TFS 버전이 이미 – jessehouwing
을 지원하는 경우 TFS 가져 오기 저장소 기능을 사용하십시오. 치명적입니다. URL 인증에 실패했습니다. 그리고 예, TFS 가져 오기가 가장 먼저 시도했습니다. 서비스 끝점을 만들 권한이 없습니다. 프로젝트 수집 관리자가 귀하를 엔드 포인트 크리에이터 그룹에 추가해야합니다. – Mindan
@jessehouwing - 어떤면에서 그 것들이 "더 나은"것이겠습니까? (Spoiler alert : 그들은 그렇지 않습니다 .TFS로 끌어 올 수 없기 때문에 첫 번째는 적용 할 수 없습니다. 두 번째는 심판을 푸는 것보다 낫지 만, MS 툴링에 익숙한 사람들에게는 편의입니다. 자식과.) –