2017-12-19 70 views

答えて

3

リモートからすべてのタグをプッシュしたい場合は、明示的にプルしてから明示的にプッシュしない限り、ローカルクローンから転送しません。それが - ミラーが役立つものです。

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 
-1

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 
+0

新しい場所に--mirror' 'gitのプルを行う方が良いでしょう。または、TFSバージョンがすでに – jessehouwing

+0

をサポートしている場合は、TFSインポートリポジトリ機能を使用してください。はい、TFSインポートは私が試した最初のものでした サービスエンドポイントを作成する権限がありません。プロジェクトコレクション管理者があなたをエンドポイントクリエイターグループに追加する必要があります。 – Mindan

+0

@jessehouwing - どのようにしてそれらは「より良い」ものになるでしょうか? (Spoiler alert:彼らはそうではありません。最初のものは、TFSに "引き込む"ことができないので、適用されていません)、2番目の方法は参考文献を押すことよりも優れていて、MSツールに精通しているgitで) –

0

あなたはTFSのバージョンを使用していますか? TFS 2017 Update1以降のバージョンを使用している場合は、TFS内のImport a Git repoを直接使用することができます。

以前のバージョンでは、jessehouwingまたはMarkの答えに従うことができます。そして個人的に私はgit clone --mirror sourceと思っています。

また、このスレッドを参照することができます。https://gist.github.com/niksumeiko/8972566

+0

はい、私はjessehouwing解決策に従って、それは私のために働いた。 – Mindan

関連する問題