以前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存在します。