2016-10-12 10 views
2

を上演 - これは(つまり、新しく追加されたファイル)と非段階的な変化を上演含ん - 平野リストにた私がスクリプトで使用できます。リスト(非上演)の修正...のgit:すべての変更されたファイルを表示するには - 上演していない私は</strong><strong>私にすべて変更されたファイルを与えるコマンドが必要

git ls-files -m 

が、無視は

git diff --name-only 
を上演し、新しく 追加されたファイル:この質問は、私は唯一の私が何をしたいの近くに来るのコマンドを見つける馴染みかもしれませんが

は...またのみリスト以外は修正

git diff --name-only --cached 
を上演します210

..私はしたいすべてのファイルを見るために出力しますが、私はgit statusでプレイできる状態

追加... だけ修正を上演したが非上演 修正

git status --porcelain --untracked-files=no 

でファイルを省略示していますもちろんcut最初のエントリですが、私はこのコマンドをウィンドウでも使用されるCMakeスクリプトに統合したいからです。ですから、1つのコマンドはうまくいくでしょう。

+1

リストを取得するには2つの 'git diff'コマンドが必要です。 'git status'コマンドは2つの' git diff'-sを内部的に実行します。 'foo'ファイルを変更してステージングした後、再度修正してステージングしないことも可能です。 (この場合、 'git status'は' MM'と表示されます。) – torek

+0

私は自分の答えに書いたように 'HEAD'に対して明示的に相違しているようです - その方法に問題はありますか? – frans

+0

'git diff HEAD'は' HEAD'(現在のコミット)とwork-treeを比較します。ステージングされたファイルを見逃し、 'HEAD'コミットと一致するように修正しました。たとえば、 'foo'に行を追加し、結果を' git add'して、追加された行を削除します。 – torek

答えて

1
git diff --name-only HEAD 

私は探しているもののようですが、まだ分かりません。誰かが何らかの精緻化をしたら、私は彼/彼女の答えを取るでしょう:)

+2

これは、ワークツリーとあなたのHEADの状態を比較します。それはあなたの質問をしている間にあなたが念頭に置いていたものとは異なるかもしれません。違いは、ファイルを変更してステージングし、ワークツリーの変更を取り消す場合です。このケースをどのように処理したいのですか? – Leon

関連する問題