ローカルとリモートの両方でブランチを削除したい。
``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 より
ブランチをローカルとリモートの両方で削除するには、どうすればいいでしょうか?
ローカルとリモートの両方で remotes/origin/bugfix
ブランチの削除を成功させるには、どうすればいいですか?
$ git push -d <remote_name> <branch_name>
$ git branch -d <branch_name>
ほとんどの場合、リモート名は origin
であることに注意してください。
ローカル*ブランチを削除するには、以下のいずれかを使用します。
$ git branch -d branch_name
$ git branch -D branch_name
注意: -d
オプションは --delete
のエイリアスで、上流のブランチに完全にマージされている場合にのみ、ブランチを削除します。また、-D
を使うこともできます。これは --delete --force
のエイリアスで、「マージされているかどうかにかかわらず」ブランチを削除します。[Source: man git-branch
].
Git v1.7.0]git-1.7.0では、次のようにして***リモートブランチを削除することができます。
$ git push <remote_name> --delete <branch_name>
のほうが覚えやすいかもしれません。
$ git push <remote_name> :<branch_name>
これは、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 のバージョンによって、簡単な構文と難しい構文のどちらを使うべきかが決まります。
スコット・チャコンのPro Gitの第3章より。
リモートブランチの削除
例えば、あなたとあなたの共同作業者がある機能を完成させ、それをリモートの master ブランチ (あるいはあなたの安定したコードラインがあるブランチ) にマージしたとしましょう。リモートブランチを削除するには、
git push [remotename] :[branch]
というちょっとわかりにくい構文を使います。server-fix ブランチをサーバーから削除するには、次のようにします。$ git push origin :serverfix [email protected]: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
を実行して変更を伝播させます。
他の回答に加えて、私はよく git_remote_branch というツールを使います。追加でインストールしなければなりませんが、リモートブランチを操作するための便利な方法が手に入ります。今回の場合は削除です。
grb delete branch
私は、publish
とtrack
コマンドもよく使うことに気づきました。