私がそうしgit fetch origin
、originに削除されたブランチがある場合、リポジトリでそれを更新していないようです。私がやったとき、git branch -r
それはまだ表示されますorigin/DELETED_BRANCH
。
どうすればこれを修正できますか?
次のことを行う必要があります
git fetch -p
-p
or引数は、--prune
リモートブランチのローカルデータベースを更新します。
http://www.gitguys.com/topics/adding-and-removing-remote-branches/から
誰かがリモート リポジトリからブランチを削除した後、ユーザーが git pull または git fetch を実行しても、git はローカル リポジトリ ブランチを自動的に削除しません。ただし、リモート リポジトリで削除されたすべての追跡ブランチをローカル リポジトリから削除したい場合は、次のように入力できます。
git リモートプルーンオリジン
注意として、-p パラメータはgit fetch -p
実際には「プルーニング」を意味します。
どちらの方法を選択しても、存在しないリモート ブランチはローカル リポジトリから削除されます。
に関してgit fetch -p
は、Git 1.9 で動作が変更され、Git 2.9.x/2.10 のみがそれを反映しています。
Jeff King ( )によるcommit 9e70233 (2016 年 6 月 13 日)を参照してください。( 2016 年 7 月 6 日にコミット 1c22105でJunio C Hamanoによってマージされました)peff
gitster
fetch
:フェッチする前にプルーニングが行われるドキュメントこれは10a6cc8 (
fetch --prune
: Run prune before fetching, 2014-01-02) で変更されましたが、その議論の中で誰も「後」を明示的に宣伝していることに気付いていないようです。
したがって、ドキュメントには次のように記載されています。
取得する前に、リモートに存在しなくなったリモート追跡参照をすべて削除します
その理由は次のとおりです。
frotz/nitfol
以前のフェッチから" " という名前のリモート トラッキング ブランチがあり、アップストリームに " " という名前のブランチがある場合、フェッチは " " を含む " " をアップストリームからfrotz
削除できませんでした。git は、ユーザーに " " を使用して問題を解決するよう通知します。frotz/nitfol
git fetch --prune
git remote prune
fetch --prune
プルーニング操作をフェッチ操作の前に移動して、「 」の動作方法を変更します。このようにして、ユーザーに競合を警告する代わりに、自動的に修正します。