36

私は EGit (Eclipse 用) を開発チームと一緒に使用しています。新しい作業のために多くのブランチを作成し、featureそれらが完成したらブランチにfixマージしてきました。releaseそれらが正しいreleaseブランチにマージされた直後に、これらの一時ブランチは通常、リモート リポジトリをクリーンに保つために削除されます。

これらのブランチが削除されると、リモート リポジトリからフェッチすることに気付きましたが、EGit はそれらをリモート トラッキング ビューから削除しません。私のリモート追跡ビューには、リモート リポジトリに存在しない削除済みブランチが引き続き表示されます (削除されたことを示す兆候はありません)。リモート追跡ビューに実際のレポを反映させる唯一の方法 (私が見つけた) は、すべてのリモート追跡ブランチを手動で削除 (強調表示して削除) し、再度フェッチすることです。これは非常に回りくどいように思えます。特に、次のようにコマンド ラインからリモート ブランチをプルーニングできるためです。

git remote prune origin

基本的に、私が知りたいのは、リモート追跡ブランチが変更されたときに (フェッチした後)、EGit がこのプルーニングを実行するように構成/実行する方法があるかどうかです。originリモートでの現在のフェッチ構成は次のとおりです。

ここに画像の説明を入力

4

3 に答える 3

52

2014 年 3 月の更新: cheshire回答で述べたように、EGit 3.3はプルーニング機能を追加しました。

JGitのこのGerritコードレビューで導入された上記の機能を見ることができます(そしてここでテストされています

に記載されているエントリfetch.prunegit configを Egit 構成に追加できます。

https://wiki.eclipse.org/images/f/f8/RepositoryConfigurationSettings.png


元の回答 (2013 年 3 月)

EGit は、リモート トラッキング ブランチが変更されたときに (取得後)、このプルーニングを実行します。

私が知っていることではありません。

より一般的には、クライアント側での各フェッチ後にアクションを実行することは、フックでは不可能です。
これはリクエストされており、ある時点ではサーバー側でのみ実装されていました:フックpost-upload(フェッチ後に実行) でしたが、マルチユーザー環境でのセキュリティ上の理由から削除されました。

于 2013-03-05T11:32:55.827 に答える
14

最近のEGit 3.3 リリースでは、プルーンのサポートが導入されました。

fetch.pruneまたはremote.<yourremotename>.pruneキーを gitconfig に追加して、 に設定できtrueます。EGit でフェッチすると、中央リポジトリで削除されたブランチが自動的に削除されます。

于 2014-03-07T21:42:58.107 に答える