古いリモート Git ブランチをクリーンアップする 質問する

古いリモート Git ブランチをクリーンアップする 質問する

私は 2 台の異なるコンピューター (A と B) から作業し、共通の git リモートを Dropbox ディレクトリに保存します。

たとえば、master と devel という 2 つのブランチがあるとします。どちらも、リモートの origin/master と origin/devel を追跡しています。

ここで、コンピューター A で、ローカルとリモートのブランチ devel を削除します。

git push origin :heads/devel
git branch -d devel

コンピュータ A で実行するとgit branch -a、次のブランチのリストが表示されます。

  • マスター
  • 起源/HEAD
  • 起源/マスター

コンピュータ B で実行するとgit fetch、 でローカル devel ブランチを削除できますgit branch -d develが、リモート devel ブランチを削除することはできません。

git push origin :heads/devel次のエラー メッセージを返します。

エラー: 不適格な宛先にプッシュできません: heads/proxy3d
宛先の refspec はリモートの既存の参照と一致しておらず、refs/ で始まっていません。また、ソース参照に基づいてプレフィックスを推測できません。
致命的: リモート側が予期せずハングアップしました

git branch -aリモート ブランチに origin/devel がまだリストされています。

コンピューター B からリモート ブランチをクリーンアップするにはどうすればよいですか?

ベストアンサー1

git branch -aまず、マシン Bの結果は何でしょうか?

heads/devel次に、ですでに削除されているoriginため、マシン B から削除することはできません。

試す

git branch -r -d origin/devel

または

git remote prune origin

または

git fetch origin --prune

実際に実行せずに実行結果を確認するには、ステートメント--dry-runの最後に自由に追加してください。git

ドキュメントgit remote pruneそしてgit branch

おすすめ記事