削除したブランチ名をオートコンプリートから削除するにはどうすればよいですか?


120

以前git branch -d myBranchはブランチを削除していました。しかし、私がマスターにいて、で新しいブランチをチェックアウトしようとするとgit checkoutmyBranchそれでもタブオートコンプリートに表示されます。

myBranchタブオートコンプリートから名前を削除するにはどうすればよいgit checkoutですか。


10
またはのgit branch -aいずれかがまだリストされていますmyBranchorigin/myBranch?場合でも、なおmyBranch存在していない、git checkout myBranchまだのために有効なショートカットでgit checkout -b myBranch origin/myBranchあればorigin/myBranch存在します。
twalberg 2013

2
回答として投稿する価値がある@twalberg。
cmbuckley 2013

回答:


81

これの考えられる理由の1つは、リモートブランチ(などorigin/myBranch)がまだ存在する場合、git checkout myBranchの代替として成功することgit checkout -b myBranch origin/myBranchです。これは、リモートブランチを初めてチェックアウトして、同じ名前のローカルトラッキングブランチを作成するという一般的な場合の便宜を図るためのものです。

完成に何を使用しているかによって、他の可能性もありますが、それは私が最初に確認することの1つです。を実行しgit branch -aorigin/myBranchリストが表示されている場合(または、リモート以外の場合はorigin、リモートがある場合)、それが原因である可能性があります。


2
ありがとう!それが犯人のようです。origin/myBranchまだ存在しています。myBranch(オンラインインターフェイスを介して)Githubでブランチを削除した場合、git branch -d origin/myBranchそのリモートブランチを削除するために呼び出すことは安全ですか?
ジョンホフマン

99
@JohnHoffmanそれは安全なはずですが、もっと良い方法だと思いますgit fetch --prune origin。これにより、リモートに存在しなくなったすべてのローカル追跡ブランチがクリーンアップされます。
twalberg 2013

3
@twalbergローカルブランチとリモートブランチを削除するだけでは、オートコンプリートの古いブランチをすべて削除できるとは思いません。オートコンプリートでリモートブランチへのローカル参照がなくなるようgit fetch --prune originにする必要があると思います。それをコメントから回答に移すとよいでしょう。それは私を助けてくれたので、とにかくあなたの応答をありがとう!
timmyl、2015年

4
git branch -a私を正しい軌道に導きました。私の同僚はgit fetch --prune --all、すべてのリモートからすべての死んだブランチをプルーニングすることを提案しました。これは、多くのフォークを持つ多くの開発者と作業するときに役立ちます。
ericsoco

173

git fetch --prune --all

これは1行の修正なので、独自の回答として投稿しますが、投票する場合は、必ず上記の@twalbergの回答に投票してください。

@twalberg git branch -aが私を正しい方向に導いたという提案。私の同僚はgit fetch --prune --all、すべてのリモートからすべての死んだブランチをプルーニングすることを提案しました。これは、多くのフォークを持つ多くの開発者と作業するときに役立ちます。


19
受け入れられた回答は、これが発生する理由を説明していますが、この回答は問題の実際の解決策を示しているため、私見で受け入れられる必要があります。
Patrick Oscity、2015年

3
死んだ枝の名前はまだオートコンプリートに表示されています。
Fitsyu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.