web-dev-qa-db-ja.com

git:新しいファイルのみを一覧表示します

git statusを実行すると、接頭辞new file:が付いたファイルのリストを取得します。このリストのみを取得するにはどうすればよいですか?このファイルを小さなシェルスクリプトの単純なループで処理したいと思います。

37
BetaRide

git status --porcelain | grep "^A" | cut -c 4-のようなものを使用します

20
Rom1

Grepを使用してgit出力を解析しないでください。 Gitには、ほぼ間違いなく、探しているものが組み込まれています(本当に高度なものを使用する場合を除く)。
git diffを使用して、変更を表示できます。 --name-onlyはファイル名のみを表示します。 --diff-filter=Aは、追加されたファイルのみをリストします。
すでにインデックスに追加した新しいファイルを表示する場合は、--cachedを使用します。それ以外の場合は省略します。 HEADとの両方の差分を表示するには。
コマンドは次のようになります。

git diff --name-only --diff-filter=A --cached # All new files in the index  
git diff --name-only --diff-filter=A          # All files that are not staged  
git diff --name-only --diff-filter=A HEAD     # All new files not yet committed
81
andsens

git status --shortを使用して、ファイルのリストを取得できます。

17
vpatil

「git status」の出力を解析する代わりに、おそらくよりエレガントに使用できます

git ls-files -o  --exclude-standard

git statusと同様に、ls-filesは、現在の作業ディレクトリに関連する出力を生成します。

--full-nameオプションを含めることもできます。

git ls-files -o  --exclude-standard --full-name
14
Keith Hanlan
git status | grep "new file:" | cut -c 14-

git status | grep "modified:" | cut -c 14- 
0
Raviv Shweid

新しいファイルのリスト、またはgitに追加するファイルを取得するには、git statusおよびgit status -s | grep ??などのgrepコマンドを使用して取得できます

root@user-ubuntu:~/project-repo-directory# git status -s | grep ??
 ?? src/.../file1.js
 ?? src/.../file2.js
 ?? src/.../file3.js
 ....
0
SuperNova