開発者のチームでEGit(Eclipse用)を使用しています。新しい作業のためにfeature
ブランチとfix
ブランチを多数作成し、それらが完了したらrelease
ブランチにマージしています。これらが正しいrelease
ブランチにマージされた直後、これらの一時的なブランチは通常、リモートリポジトリをクリーンに保つために削除されます。
これらのブランチが削除されると、リモートリポジトリからフェッチされますが、EGitはそれらをリモートトラッキングビューから削除しないことに気づきました。私のリモートトラッキングビューには、リモートリポジトリに存在しない削除されたブランチが引き続き表示されます(それらが削除されたことを示すものはありません)。リモートトラッキングビューに実際のリポジトリを反映させる唯一の方法(私が見つけた)は、リモートトラッキングブランチをすべて手動で削除(ハイライトして削除)してから、再度フェッチすることです。これは、特に次のように、コマンドラインを介してリモートブランチをプルーニングできるため、非常に回り道のようです。
git remote Prune Origin
基本的に、リモートトラッキングブランチが変更されたときにEGitがこのプルーニングを実行するように構成/作成する方法があるかどうかを知りたいです(フェッチした後)これは、Origin
リモートでの現在のフェッチ構成です:
2014年3月の更新: cheshire の answer で言及されているように、 EGit 3. はそのプルーン機能を追加しました。
Gerrit code review で紹介されているこの機能を JGit で見ることができます(そして tested here )
エントリfetch.Prune
git config
をEgit設定に追加できます:
元の回答(2013年3月)
EGitは、(私がフェッチした後で)リモート追跡ブランチが変更されたときにこのプルーニングを実行します。
私が知っていることではありません。
より一般的には、クライアント側での各フェッチがフックで不可能である後にアクションを実行します。
要求された があり、サーバー側でのみ実装されていました: フックpost-upload
(フェッチ後に実行)、ただしマルチユーザー環境でのセキュリティ上の理由から削除されました。
最近の EGit 3.3リリース はPruneサポートを導入しました。
fetch.Prune
またはremote.<yourremotename>.Prune
キーをgitconfigに追加し、true
に設定します。 EGitでフェッチすると、中央リポジトリーから削除されたブランチが自動的にプルーニングされます。
Git-Settingsでfetch.Prune = trueを設定すると、問題が解決します。リポジトリ設定で行う場合は、リポジトリごとにこの設定を変えることができます。リポジトリごとにこの設定を使用する場合は、ユーザー設定にfetch.Prune = trueを設定することをお勧めします。そのため、リポジトリごとに繰り返す必要はありません。