Git ブランチをローカルおよびリモートで削除するにはどうすればよいですか? 質問する

Git ブランチをローカルおよびリモートで削除するにはどうすればよいですか? 質問する

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

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

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

$ git branch -rd origin/bugfix
Deleted remote branch origin/bugfix (was 2a14ef7).

$ git push
Everything up-to-date

$ git pull
From github.com:gituser/gitproject

* [new branch] bugfix -> origin/bugfix
Already up-to-date.

remotes/origin/bugfixローカルとリモートの両方でブランチを適切に削除するにはどうすればよいですか?

ベストアンサー1

エグゼクティブサマリー

git push -d <remote_name> <branchname>
git branch -d <branchname>

注:ほとんどの場合、<remote_name>になりますorigin

ローカルブランチを削除

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

git branch -d <branch_name>
git branch -D <branch_name>
  • オプション-dは のエイリアスであり--delete、上流ブランチにすでに完全にマージされている場合にのみブランチを削除します。
  • オプション-Dは のエイリアスであり--delete --force、マージされたステータスに関係なくブランチを削除します。[ソース: man git-branch]
  • 現在Git v2.3git branch -d(削除) は-f(強制) フラグを尊重することを学びました。
  • 現在選択されているブランチを削除しようとすると、エラーが発生します。

リモートブランチの削除

現在Git v1.7.0リモートブランチを削除するには、

$ git push <remote_name> --delete <branch_name>

覚えやすいかもしれない

$ git push <remote_name> :<branch_name>

追加されたのはGit v1.5.0「リモート ブランチまたはタグを削除します。」

で始まりますGit v2.8.0git push、オプション-dを のエイリアスとして使用することもできます--delete。したがって、インストールした Git のバージョンによって、より簡単な構文とより難しい構文のどちらを使用する必要があるかが決まります。

リモート ブランチの削除 [2010 年 1 月 5 日の元の回答]

第3章よりプロGitスコット・チャコン著:

リモートブランチの削除

リモート ブランチでの作業が完了したとします。つまり、あなたと共同作業者が機能を完成させ、それをリモートのメイン ブランチ (または安定したコード ラインがあるブランチ) にマージしたとします。ややわかりにくい構文 を使ってリモート ブランチを削除できます。サーバーからブランチgit push [remotename] :[branch]を削除する場合はserverfix、次のコマンドを実行します。

$ git push origin :serverfix
To [email protected]:schacon/simplegit.git
 - [deleted]         serverfix

ドカン。サーバーにブランチがなくなりました。このページは折り目を付けた方がいいかもしれません。そのコマンドが必要になるからです。構文を忘れてしまう可能性もあるでしょう。このコマンドを覚えるには、git push [remotename] [localbranch]:[remotebranch]少し前に説明した構文を思い出すのがよいでしょう。 部分を省略すると[localbranch]、基本的に「私の側では何も取らずに にする[remotebranch]」と言っていることになります。

を実行したgit push origin :bugfixところ、見事にうまくいきました。スコット・チャコンは正しかった。折り目そのページ(または、Stack Overflow でこれに答えて事実上折り耳にする)

最後に、他のマシンで次のコマンドを実行して変更を伝播します。

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

おすすめ記事