5

git gc --prune=nowリモートの Team Foundation Server 2015 (tfs2015)で実行する方法はありますか? または、git gc --prune=nowローカルで実行し、tfs2015 で新しいリポジトリを作成して新しいリモートにプッシュし、古いリポジトリを削除して、新しいリポジトリの名前を古い名前に変更する唯一の方法です。それを行うときは、好きなコミットをオフにすることを忘れないでください。

4

2 に答える 2

3

https://blogs.msdn.microsoft.com/congyiw/2015/12/14/why-does-cloning-from-vsts-return-old-unreferenced-objects/を参照してください- これは TFS でホストされる git の既知の制限です、gcコマンドがありません。

Microsoft は、次の 2 つの回避策を提供しています。

  • レポを複製し、ローカルでクリーンアップし、サーバーから削除し、新しいレポを作成して、クリーンアップしたものをそれにプッシュします(質問で説明したこと)
  • しないgit cloneでください。ただし、次のようにローカル リポジトリを取得します。

    mkdir newRepo
    git init
    git remote add origin 
    #fetch one branch first
    git fetch origin master
    #fetch everything else
    git fetch origin
    

    これは、本当に必要なオブジェクトだけを実際に送信するように TFS をだますものです。

プルリクエストなどを失う余裕がある場合(たとえば、これが比較的新しいレポである場合)、オプション1は私にとってより合理的であるように思われます。

オプション 2 は、リポジトリのユーザーがこの方法で手動でクローンを作成する必要があるため、非常に気分が悪いです。

于 2016-03-30T11:22:28.503 に答える