1. ホーム
  2. git

[解決済み] Git がリモートブランチの削除にコロン (:<branch>) を使う理由

2023-04-22 22:51:21

質問

なぜGitは

git push <remote> :<branch>

のように

git push origin :featureA

をクリックすると、ブランチが削除されます。 featureA リモートサーバーから?

なぜコロンが削除フラグとして使われたのか、興味があります。

とは大違いです。 git branch -d <localbranch> .

のようなことをしてはどうでしょうか。

git branch -d --remote origin <branchname>

とか、私の知らないコロン記号の深い意味があるのでしょうか?

どのように解決するのですか?

の意味ではなく : の意味そのものではなく、その前に存在するもの、むしろ存在しないものなのです。

refspecのフォーマットは

<+><source>:<destination>

(早送りでない場合はオプションの+)

というわけで、以下のようなことをすると git push origin :featureA のようにすると、空のソース参照を指定し、基本的にデスティネーションを "空" にするか、削除することになります。

追記 : を指定しても、何もしないことを意味するわけではありません。これは、git に "matching" ブランチをプッシュさせます。ローカル側に存在するすべてのブランチについて、同名のブランチがすでにリモート側に存在していれば、リモート側が更新されます。