gitリポジトリをtfs gitに移行する必要があります。 これは私の初めての移行であり、履歴データをそのまま維持することが重要です。どのようにそうすることができますか?すべての履歴コミットを維持しながらGitリポジトリをtfs Gitに移行
答えて
リモートからすべてのタグをプッシュしたい場合は、明示的にプルしてから明示的にプッシュしない限り、ローカルクローンから転送しません。それが - ミラーが役立つものです。
git clone --mirror source
git push --mirror target
は魔法です。 Full documentation can be found here。ローカルリポジトリにリモートを追加してプッシュすると、現在のブランチとその履歴はプッシュされますが、現在のマスターリポジトリ内のすべてのオブジェクトがプッシュされず、ローカルクローンに存在しないタグやラベルはすべてプッシュされません。
リポジトリをインポートすると、リポジトリをローカルに保存してソースから直接引き出すことができます。ローカルリポジトリを作成し、それを押し込むよりもはるかに高速です。 It's supported in VSTS, TFS 2017u1+ and TFS2018。ただし、両方のサーバー間で直接の視界が必要で、代替資格情報または個人用アクセストークンを設定する必要があります。
ローカルクローン方法:
LOCAL <- SOURCE
LOCAL -> TARGET
インポートリポジトリオプション:
はTARGET <- SOURCE
tfs gitリポジトリへの移行は、他のgitリポジトリへの移行と同じです。以下では、ソースリポジトリをローカルに複製する必要があり、tfsのgit repoがリモートになります。
まず、リモートのURLが見つかります。これはTFS Web UIから取得できます。 repoが最初に作成されたときに表示される指示ページでそれを提供するか、またはtfsにrepoがすでに存在する場合は、「クローン」ボタンをクリックしてURLを取得できます。
これをリモートのローカルリポジトリに追加します。
git remote add tfs url/of/remote
次に、あなたのリファレンスをリモートにプッシュします。 gitは自動的に完全な履歴を送信します。
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
- 1. GITリポジトリを移行履歴をそのまま維持する
- 2. git workflow:機能コミットの履歴を維持する
- 3. 履歴を維持しながらSubversionリポジトリのサブディレクトリにインポート
- 4. TFSVCからGITへの移行 - 部分履歴付きリポジトリ?
- 5. Git削除履歴コミット
- 6. 既存のgitリポジトリを新しいリポジトリに移動してコミット履歴を保存する方法
- 7. GITリポジトリ間のブランチ上のコミットの履歴を見つける
- 8. TFVCからgitへの移行、新しいgitディレクトリ構造とTFVCチェンジセット履歴の維持
- 9. git履歴のコミットを削除する
- 10. TFS(2015)から履歴とブランチを使用したGITへの移行
- 11. すべてのGitコミット履歴を削除する
- 12. git-svnからgitoliteに移行して履歴を保持する方法
- 13. SVNとGitリポジトリをすべての履歴と結合する
- 14. スカッシュgitは、マスターの履歴を維持しながらブランチでコミットしますか?
- 15. gitコミット履歴を消去する
- 16. マージ後のGitブランチとコミット履歴
- 17. gitでコミットの履歴からコミットする方法は?
- 18. SVNからのすべてのコミット履歴はGITに移行されません
- 19. git logすべてのブランチマージの履歴
- 20. 履歴なしのgitブランチ
- 21. gitソース行の履歴
- 22. Git to TFS 2008片道移動(履歴あり)
- 23. 履歴から複数のgitコミットを削除する
- 24. 履歴付きgitリポジトリを別のリポジトリにエクスポート
- 25. gitリポジトリのクローンの維持
- 26. gitは、履歴を保存しながら別のリポジトリにディレクトリを移動します。
- 27. モノリシックアプリケーションをマイクロサービスベースのアーキテクチャにチューニングし、GITの履歴を維持する
- 28. 別のgitリポジトリ内でGitリポジトリを維持する
- 29. 私がローカルに持っていないリモートgitの履歴からコミットを削除します
- 30. .gitの履歴を持たないバージョンからgitを更新する
新しい場所に--mirror' 'gitのプルを行う方が良いでしょう。または、TFSバージョンがすでに – jessehouwing
をサポートしている場合は、TFSインポートリポジトリ機能を使用してください。はい、TFSインポートは私が試した最初のものでした サービスエンドポイントを作成する権限がありません。プロジェクトコレクション管理者があなたをエンドポイントクリエイターグループに追加する必要があります。 – Mindan
@jessehouwing - どのようにしてそれらは「より良い」ものになるでしょうか? (Spoiler alert:彼らはそうではありません。最初のものは、TFSに "引き込む"ことができないので、適用されていません)、2番目の方法は参考文献を押すことよりも優れていて、MSツールに精通しているgitで) –