要するに;
- リモートの複数のマージされたリモートを削除するにはどうすればよいですか?
より多くの背景;
マスターにマージされた数十のリモートを持つgitリポジトリがあります。以下を使用して、これらのリモートを1つずつ削除できます。
git push --delete origin myBranch-1234
ただし、これはすべてのリモートにとって遅くて退屈なプロセスです。だから私はこのコマンドを試しています:
git branch -r --merged | grep origin | grep -v master | xargs git push origin --delete
git branch -r --merged
マージされたすべてのリモートをリストします。
grep origin
コマンドにoriginを含めるように指示します。
grep -v master
コマンドにマスターを除外するように指示します。
xargs git push origin --delete
コマンドにリモートのリストを削除するように指示します。
まとめると、マージされたすべてのリモートを収集して削除することを期待しています。
上記のコマンドを実行すると、マージされたリモートごとに次のメッセージが表示されます。
error: unable to delete 'origin/myBranch-1234': remote ref does not exist
error: unable to delete 'origin/myBranch-1235': remote ref does not exist
error: unable to delete 'origin/myBranch-1236': remote ref does not exist
error: unable to delete 'origin/myBranch-1237': remote ref does not exist
... etc
ただし、これらのリモートは存在し、それぞれをチェックアウトできます。多くのサイトや人々は、git fetch --prune
足りない参照をクリーンアップするために実行することを勧めています。これらのリモートがすべて存在するため、これは何もしません。
だから私はあなたにお願いします、親愛なるスタック交換。
- 1つのリモートを削除できるが、多くはできないのはなぜですか?
- 私のコマンドは正しいですか?
私は何か小さいものを見逃していると思います。これを研究するたびに、私はこれを正しく行っているように見えますが、上記のエラーが発生しています。
--prune
ですか?私の意見では、それはかなり誤解を招くものです