1. ホーム
  2. git

[解決済み] Gitブランチをローカルやリモートで削除するには?

2022-03-15 07:26:26

質問

ローカルとリモートの両方でブランチを削除したいのですが、どうすればいいですか?

リモートブランチの削除の試行失敗

$ 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 ブランチをローカルとリモートの両方で使用できますか?

解決方法は?

エグゼクティブサマリー

$ 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.3 , git 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.0 を使用することもできます。 git push と共に -d オプションのエイリアスとして --delete . したがって、インストールされているGitのバージョンによって、簡単な構文と難しい構文のどちらを使うべきかが決まります。

リモートブランチの削除 [2010年1月5日のオリジナルアンサー]について

の第3章より プロGit Scott Chaconによるものです。

<ブロッククオート

リモートブランチの削除

たとえば、ある機能を完成させ、それをリモートのメインブランチ (あるいは安定版のコードラインがあるブランチ) にマージしたとしましょう。リモートブランチを削除するには、次のようなややこしい構文を使います。 git push [remotename] :[branch] . サーバーからserver-fixブランチを削除したい場合は、次のように実行します。

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

ブームです。もうあなたのサーバにブランチは必要ありません。このコマンドは必ず必要になるし、構文も忘れてしまうので、このページをドッグイヤーしておくとよいでしょう。このコマンドを覚える方法は git push [remotename] [localbranch]:[remotebranch] の構文は、先ほど少し説明したとおりです。もし [localbranch] の部分は、基本的に「私の側を何もしないで、それを [remotebranch] ."

私が発行した git push origin: bugfix で、見事に成功しました。Scott Chaconの言うとおりです。 犬耳 そのページ(またはStack Overflowでこれに答えることで事実上の犬耳)を作成しました。

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

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

を使用して変更を伝搬させます。