最後のコミット以降に変更されたファイルのリストを、git status
は表示されますが、気にするのは単一のディレクトリにあるファイルだけです。これを行う方法はありますか?私は試した git status <directory>
、しかし、これは完全に異なる何かをするようです(私がgit add <directory>
最初)。
Git-statusのドキュメントは、git-commitと同じオプションを受け入れるという事実を除けば、あまり語りません(ただし、git-commitの目的は、変更されたファイルのリストを表示することではありません)。
ディレクトリ内から:
git status .
実際に任意のパスを使用できます。次の構文を使用します。
git status <directoryPath>
たとえば、パスが「my/cool/path/here」のディレクトリの場合
git status my/cool/path/here
git status
がgit commit
と同じオプションをとる理由は、git status
の目的は、git status
に渡したのと同じオプションでコミットした場合に何が起こるかを示すためです。 。この点で、git status
は本当にgit commit --preview
です。
必要なものを取得するには、段階的な変更を示すこれを行うことができます:
git diff --stat --cached -- <directory_of_interest>
そして、これはステージングされていない変更を示します:
git diff --stat -- <directory_of_interest>
またはこれは両方を示しています:
git diff --stat HEAD -- <directory_of_interest>
最も簡単なソリューション:
git status | grep -v '\.\.\/'
もちろん、これは色を破棄します。
注として、gitディレクトリに移動せずにgitの統計情報を簡単に確認できる場合、
###ファイルを作成 sudo nano /usr/local/bin/gitstat ###これを #!/ usr/bin/env bash dir = $ 1 if [[$ dir == ""]]; then echo "ディレクトリが必要です!" exit fi echo "Git stat for '$ dir'。" git --git-dir = $ dir/.git --work-tree = $ dir diff --stat ### exec perm sudo chmod + x /usr/local/bin/gitstat
そして、その単純なスクリプトを呼び出す:gitstat /path/to/foo-project
。また、foo-project
でgitstat .
を実行しているときにも使用できます。したがって、GUIの代わりに常にコンソールを使用している場合は、git status -s
、git diff --stat
、またはgit diff --stat HEAD
よりも短いと仮定します。
クレジット: