私は現在のディレクトリの各サブディレクトリにgit status
のようなものを実行するためのスクリプトを書いていますので、すぐにいくつかのgit reposに関する情報を得ることができます。しかし、私はreposを変更するコマンドを防ぐ必要があります。私は一度に10のレポを振りたいとは思わないでしょう。私はgit branch -a
を各repoのブランチを見るために実行したいと思うかもしれないので、ちょうどgitサブコマンドのホワイトリストを使うことはできませんが、各repoに新しいブランチを作成するのにgit branch new-branch-name
はできません。gitを読み取り専用モードで実行する方法はありますか?
gitを実行して、repoに変更を加えるのではなく中断するようにする方法はありますが、読み取り専用コマンドを実行するときはうまく動作しますか?
編集:私がしたいことは、このように機能するgit-subdirsコマンドを作成することです:git subdirs COMMAND ARGS
と入力すると、for dir in */; do cd $dir && git COMMAND ARGS && cd ..; done
(追加のエラーチェックのみ)のようなことをしたいと思います。ただし、git COMMAND ARGS
が何らかの方法でリポジトリを変更する場合は、私はそれをしたくないのですが、私は多くの異なるリポジトリに同じ変更を加えたいとは思わないためです。
フェッチを防止しますか?私はこのようなスクリプトの非常に一般的な使用事例であることがわかります。あなたはそれをレポを変更していないと考えるかもしれませんが、間違いなくあります。 – Cascabel
まあ、フェッチやプッシュのようなコマンドは、非破壊的に変更するホワイトリストを実装することはできますが、間違って1つのミスタイプコマンドで10個のレポジトリを壊すことのないベースラインの実装から開始すると良いでしょう。 –
実際には、 '-f'を使うとpushは破壊的になる可能性がありますので、' git branch'の例と似ています。 – MatrixFrog