1. ホーム
  2. git

[解決済み] 古いリモート git ブランチのクリーンアップ

2022-03-20 03:11:40

質問

2台のコンピュータ(AとB)で作業し、ドロップボックスディレクトリに共通のgitリモートを保存しています。

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

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

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

実行中 git branch -a をコンピュータAで実行すると、次のようなブランチのリストが得られます。

  • マスター
  • オリジン/HEAD
  • オリジン/マスター

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

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

error: unable to push to unqualified destination: heads/proxy3d
宛先の refspec はリモートの既存の ref と一致せず、また refs/ で始まらないため、ソース ref に基づいて接頭辞を推測することができません。
致命的: リモートエンドが予期せずハングアップした

git branch -a はまだリモートブランチに origin/devel をリストアップしています。

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

解決方法は?

まず git branch -a をマシンBで実行しますか?

次に、すでに削除した heads/develorigin ということで、マシンBから削除することはできません。

試してみる

git branch -r -d origin/devel

または

git remote prune origin

または

git fetch origin --prune

を追加してください。 --dry-run の末尾に git ステートメントを実際に実行することなく、実行した結果を確認できます。

のドキュメント git remote prune git branch .