ローカルとリモートでGitブランチを削除するには?

ローカルとリモートの両方でブランチを削除したい。

リモートブランチの削除に失敗しました

``bash $ git branch -d remotes/origin/bugfix error: branch 'remotes/origin/bugfix' not found.

$ git branch -d origin/bugfix error: branch 'origin/bugfix'が見つかりませんでした。

$ git branch -rd origin/bugfix リモートブランチ origin/bugfix (was 2a14ef7) を削除しました。

$ git push すべてが最新の状態になりました。

$ git pull github.com:gituser/gitproject より

  • [新規ブランチ] bugfix -> origin/bugfix すでに最新の状態になっています。

ブランチをローカルとリモートの両方で削除するには、どうすればいいでしょうか? ローカルとリモートの両方で remotes/origin/bugfix ブランチの削除を成功させるには、どうすればいいですか?

ソリューション

エグゼクティブサマリー

$ git push -d  
$ git branch -d 

ほとんどの場合、リモート名は origin であることに注意してください。

ローカルブランチの削除

ローカル*ブランチを削除するには、以下のいずれかを使用します。

$ git branch -d branch_name
$ git branch -D branch_name

注意: -d オプションは --delete のエイリアスで、上流のブランチに完全にマージされている場合にのみ、ブランチを削除します。また、-D を使うこともできます。これは --delete --force のエイリアスで、「マージされているかどうかにかかわらず」ブランチを削除します。[Source: man git-branch].

リモートブランチの削除 [Updated on 8-Sep-2017].

Git v1.7.0]git-1.7.0では、次のようにして***リモートブランチを削除することができます。

$ git push  --delete 

のほうが覚えやすいかもしれません。

$ git push  :

これは、Git v1.5.0 で追加された "to delete a remote branch or a tag" です。

Git v2.8.0][git-2.8.0]からは、--delete の別名として git push-d オプションをつけて使うこともできるようになりました。

したがって、インストールした Git のバージョンによって、簡単な構文と難しい構文のどちらを使うべきかが決まります。

リモートブランチの削除 【2010年1月5日のオリジナルアンサー

スコット・チャコンのPro Gitの第3章より。

リモートブランチの削除

例えば、あなたとあなたの共同作業者がある機能を完成させ、それをリモートの master ブランチ (あるいはあなたの安定したコードラインがあるブランチ) にマージしたとしましょう。リモートブランチを削除するには、git push [remotename] :[branch] というちょっとわかりにくい構文を使います。server-fix ブランチをサーバーから削除するには、次のようにします。

$ git push origin :serverfix git@github.com:schacon/simplegit.git に

  • [deleted] serverfix

ブームです。これで、あなたのサーバーにはブランチがなくなりました。このコマンドが必要になっても、その構文を忘れてしまうかもしれないので、このページは耳に入れておいた方がいいでしょう。このコマンドを覚えるには、少し前に説明した git push [remotename] [localbranch]:[remotebranch] の構文を思い出すといいでしょう。localbranch]の部分を省くと、基本的には「私の側では何もせず、[remotebranch]`にしてください」と言っていることになります。

私は git push origin: bugfix を発行し、それは美しく動作しました。Scott Chaconの言うとおり、私はそのページをdog earしたくなるでしょう(あるいはStack Overflowでこれに答えることで事実上のdog ear)。

[git-2.8.0]: https://github.com/git/git/blob/master/Documentation/RelNotes/2.8.0.txt

次に、他のマシンでこれを実行します。

# Fetch changes from all remotes and locally delete 
# remote deleted branches/tags etc
# --prune will do the job :-;
git fetch --all --prune

を実行して変更を伝播させます。

解説 (24)

リモートブランチを削除するには、以下の方法もあります。

git push --delete origin serverfix

と同じことができます。

git push origin :serverfix

と同じですが、こちらの方が覚えやすいかもしれません。

解説 (2)

他の回答に加えて、私はよく git_remote_branch というツールを使います。追加でインストールしなければなりませんが、リモートブランチを操作するための便利な方法が手に入ります。今回の場合は削除です。

grb delete branch

私は、publishtrackコマンドもよく使うことに気づきました。

解説 (0)