以前git branch -d myBranch
はブランチを削除していました。しかし、私がマスターにいて、で新しいブランチをチェックアウトしようとするとgit checkout
、myBranch
それでもタブオートコンプリートに表示されます。
のmyBranch
タブオートコンプリートから名前を削除するにはどうすればよいgit checkout
ですか。
以前git branch -d myBranch
はブランチを削除していました。しかし、私がマスターにいて、で新しいブランチをチェックアウトしようとするとgit checkout
、myBranch
それでもタブオートコンプリートに表示されます。
のmyBranch
タブオートコンプリートから名前を削除するにはどうすればよいgit checkout
ですか。
回答:
これの考えられる理由の1つは、リモートブランチ(などorigin/myBranch
)がまだ存在する場合、git checkout myBranch
の代替として成功することgit checkout -b myBranch origin/myBranch
です。これは、リモートブランチを初めてチェックアウトして、同じ名前のローカルトラッキングブランチを作成するという一般的な場合の便宜を図るためのものです。
完成に何を使用しているかによって、他の可能性もありますが、それは私が最初に確認することの1つです。を実行しgit branch -a
、origin/myBranch
リストが表示されている場合(または、リモート以外の場合はorigin
、リモートがある場合)、それが原因である可能性があります。
origin/myBranch
まだ存在しています。myBranch
(オンラインインターフェイスを介して)Githubでブランチを削除した場合、git branch -d origin/myBranch
そのリモートブランチを削除するために呼び出すことは安全ですか?
git fetch --prune origin
。これにより、リモートに存在しなくなったすべてのローカル追跡ブランチがクリーンアップされます。
git fetch --prune origin
にする必要があると思います。それをコメントから回答に移すとよいでしょう。それは私を助けてくれたので、とにかくあなたの応答をありがとう!
git branch -a
私を正しい軌道に導きました。私の同僚はgit fetch --prune --all
、すべてのリモートからすべての死んだブランチをプルーニングすることを提案しました。これは、多くのフォークを持つ多くの開発者と作業するときに役立ちます。
git fetch --prune --all
これは1行の修正なので、独自の回答として投稿しますが、投票する場合は、必ず上記の@twalbergの回答に投票してください。
@twalberg git branch -a
が私を正しい方向に導いたという提案。私の同僚はgit fetch --prune --all
、すべてのリモートからすべての死んだブランチをプルーニングすることを提案しました。これは、多くのフォークを持つ多くの開発者と作業するときに役立ちます。
git branch -a
いずれかがまだリストされていますmyBranch
かorigin/myBranch
?場合でも、なおmyBranch
存在していない、git checkout myBranch
まだのために有効なショートカットでgit checkout -b myBranch origin/myBranch
あればorigin/myBranch
存在します。