546

私がそうしgit fetch origin、originに削除されたブランチがある場合、リポジトリでそれを更新していないようです。私がやったとき、git branch -rそれはまだ表示されますorigin/DELETED_BRANCH

どうすればこれを修正できますか?

4

7 に答える 7

990

次のことを行う必要があります

git fetch -p

-por引数は、--pruneリモートブランチのローカルデータベースを更新します。

于 2011-04-22T02:08:01.520 に答える
98

http://www.gitguys.com/topics/adding-and-removing-remote-branches/から

誰かがリモート リポジトリからブランチを削除した後、ユーザーが git pull または git fetch を実行しても、git はローカル リポジトリ ブランチを自動的に削除しません。ただし、リモート リポジトリで削除されたすべての追跡ブランチをローカル リポジトリから削除したい場合は、次のように入力できます。

git リモートプルーンオリジン

注意として、-p パラメータはgit fetch -p実際には「プルーニング」を意味します。
どちらの方法を選択しても、存在しないリモート ブランチはローカル リポジトリから削除されます。

于 2012-05-04T08:19:32.087 に答える
9

に関してgit fetch -pは、Git 1.9 で動作が変更され、Git 2.9.x/2.10 のみがそれを反映しています。

Jeff King ( )によるcommit 9e70233 (2016 年 6 月 13 日)を参照してください。( 2016 年 7 月 6 日コミット 1c22105Junio C Hamanoによってマージされました)peff
gitster

fetch:フェッチする前にプルーニングが行われるドキュメント

これは10a6cc8 ( fetch --prune: Run prune before fetching, 2014-01-02) で変更されましたが、その議論の中で誰も「後」を明示的に宣伝していることに気付いていないようです。

したがって、ドキュメントには次のように記載されています。

取得する前に、リモートに存在しなくなったリモート追跡参照をすべて削除します

その理由は次のとおりです。

frotz/nitfol以前のフェッチから" " という名前のリモート トラッキング ブランチがあり、アップストリームに " " という名前のブランチがある場合、フェッチは " " を含む " " をアップストリームからfrotz削除できませんでした。git は、ユーザーに " " を使用して問題を解決するよう通知します。frotz/nitfolgit fetch --prunegit remote prune

fetch --pruneプルーニング操作をフェッチ操作の前に移動して、「 」の動作方法を変更します。このようにして、ユーザーに競合を警告する代わりに、自動的に修正します。

于 2016-07-09T19:55:37.867 に答える