2

私は現在、すべての git リポジトリをチェックしてそれらが汚れているかどうかを確認し、コミットが必要なものを出力する小さな zsh 関数を作成しています。これまでのところ、git リポジトリのクリーン/ダーティ ステータスを把握する最も簡単な方法は、git-diffand を使用することであることがわかりましたgit-ls-files

if ! git diff --quiet || git ls-files --others --exclude-standard; then
  state=":dirty"
fi

皆さんに 2 つの質問があります。

  1. gitリポジトリでファイルの変更/追加を確認するためのより迅速で効率的な方法を知っている人はいますか?
  2. zsh 関数にファイル パス (たとえば~/Code/git-repos/) を渡して、その中のすべてのリポジトリをチェックするようにします。各ディレクトリに cd してそれらのコマンドを実行せずに行う方法はありますか? のようなものgit-diff --quiet --git-dir="~/Code/git-repos/..."は素晴らしいでしょう。

ありがとう!:)

4

1 に答える 1

3

$DIRディレクトリ名を保持し、それが標準レイアウト (つまり、.gitディレクトリが$DIR/.git)の場合、git --git-dir $DIR/.git --work-tree $DIR status -s -uno変更がコミットされていないすべてのファイルが一覧表示されます。リストが空かどうかを確認すると、必要なものが得られます。

于 2010-05-05T19:32:16.443 に答える