1. ホーム
  2. ギット

[解決済み】リモートブランチを削除すると、Gitはリモート参照が存在しないと言う

2022-04-12 23:32:12

質問

走った git branch -a

* master
  remotes/origin/test
  remotes/origin/master

リモートブランチを削除したい

試してみた

git push origin --delete remotes/origin/test

私は

error: unable to delete 'remotes/origin/test': リモートリファレンスがない。 存在する

どのように存在しないのですか?

私は git branch -a , と記載されているのを見ました。

何か見落としがあったのでしょうか?

解決方法は?

コマンドは git branch -a は存在するリモートブランチを表示します。 ローカルリポジトリの . 少しわかりにくいかもしれませんが、これを理解するには、リモートブランチと、リモートリポジトリに存在するブランチの違いがあることを理解する必要があります。リモートブランチは ローカル ブランチは、リモートリポジトリのブランチにマッピングされます。つまり、リモートブランチの集合は、リモートリポジトリの状態を表しているのです。

リモートブランチのリストを更新する通常の方法は git fetch . これは、リモートから更新されたブランチのリストを自動的に取得し、ローカルリポジトリにリモートブランチを設定します。また、見逃している可能性のあるコミットオブジェクトもすべて取得します。

しかし、デフォルトでは git fetch は、リモート上に対応するブランチが存在しないリモートブランチを削除しません。これを行うには、明示的に プルーン を使用すると、リモートブランチのリストが表示されます。

git fetch --prune

これにより、リモート上に存在しなくなったリモートブランチは自動的に削除されます。その後で git branch -r を実行すると、リモート上に本当に存在するブランチの最新のリストが表示されます。そして、それらのブランチは git push .

つまり git push --delete の場合、リモートブランチの名前ではなく、リモートリポジトリ上のブランチの名前を指定する必要があります。つまり、ブランチを削除するには test (あなたのリモートブランチ origin/test を使用します。 git push origin --delete test .