web-dev-qa-db-ja.com

新規/変更/削除されたファイルのGITリスト

ローカル/リモートリポジトリのすべての新規/削除/変更されたディレクトリ/ファイルのリストをGITで相互に取得する方法はありますか?

30
Jean

これらのファイルをリストする最良の方法は、git status --porcelainを使用することです

例:以前に削除したファイルを削除するには:

git status --porcelain | awk 'match($1, "D"){print $2}' | xargs git rm
29
Alex Sharapov

互いの意味がわかりませんが、個々のリスト(変更されたすべてのファイルなど)が必要な場合は、git ls-files正しいフラグ(変更されたファイルの場合は-m)。この情報をすべて一度に取得したい場合は、git status --porcelainは、スクリプト解析可能なステータスの出力を取得します。

14
Lily Ballard

これを行う1つの方法は、whatchangedコマンドを使用することです。

$ git whatchanged

これは、ツリー内の各コミットで変更されたファイルを示し、詳細を確認するためにも使用できます。を見てみましょう git help whatchanged

9
sparrow

おそらく欲しいものは次のようなものです:

git fetch     # update what you know about the remote repo
git diff --name-status master Origin/master

しかし、質問からどのブランチを比較したいかを正確に伝えることは非常に困難です。

9
Cascabel

git addのドライラン(-n)オプションを使用します。

git add -A -n

6
Trident D'Gao

現在変更されているファイルのファイル名とステータスのみを取得するには、次のようにします。

git diff --name-status

次のような裸の出力が得られます。

M       a.txt
M       b.txt

次に、出力をcutにパイプして2番目の列を抽出します。

git diff --name-status | cut -f2

次に、ファイル名だけがあります。

a.txt
b.txt
2
Leandro N

コマンド--name-status

タグ付きの例:

git diff v1.0.1 v1.0.2 --name-status

コミットの例:

git diff b79810fc4d be69e41d1c --name-status

更新されたすべてのファイルとそのステータスが一覧表示されます:M-修正済みD-削除済みA-追加

1
Lefan