すべてのサブモジュールから分岐を削除する

すべてのサブモジュールから分岐を削除する

私は多くのサブモジュールを持つプロジェクトを持っており、サブモジュールからfooという名前のすべてのリモートブランチを削除したいと思います。存在する場合

私は以下を試しています:

git submodule foreach git push origin :foo

ポイントが次の位置にある場合、期待どおりに機能します。みんなただし、サブモジュールに分岐がない場合、foreachは停止します。

Stopping at 'modules/bar'; script returned non-zero status.

エラーを抑制する方法は?

ベストアンサー1

~からgitサブモジュールのマニュアルページ:

サブモジュールのコマンドでゼロ以外の戻りが発生すると、処理は終了します。コマンドの最後に ||: を追加すると、これを無視できます。

これは、次のタスクを実行する必要があることを意味します。

git submodule foreach 'git push origin :foo || :'

OR で、次のコマンドを実行します。||最初のコマンドがゼロ以外の値を返した場合は:trueを返します。

おすすめ記事