変更されたファイル名はでのみ表示できますgit log
か?
6 に答える
私が使う
git log --name-only
また
git log --name-only --oneline
略して。
私はあなたが--name-only
旗を使うことができると思います。何かのようなもの:
git log 73167b96 --pretty="format:" --name-only
私は個人的git show
にコミットで変更されたファイルを表示するために使用します:
git show --pretty="format:" --name-only 73167b96
(73167b96は任意のコミット/タグ名にすることができます)
私はここで「gitlog」の制限のない同様の答えを探していました。ここでの答えは私が必要なものを私に与えませんでしたが、これは私がそれを他の人がそれが役に立つと思う場合に備えてそれを追加します:
git diff --name-only
これを標準のコミットポインタと組み合わせて、特定のコミット以降に何が変更されたかを確認することもできます。
git diff --name-only HEAD~3
git diff --name-only develop
git diff --name-only 5890e37..ebbf4c0
これは、スクリプトに最適なファイル名のみを簡潔に提供します。例えば:
git diff --name-only develop | while read changed_file; do echo "This changed from the develop version: $changed_file"; done
#OR
git diff --name-only develop | xargs tar cvf changes.tar
これにより、ほぼ必要なものが得られます。
git log --stat --oneline
コミットIDと短い1行が残り、その後にそのコミットによって変更されたファイルのリストが続きます。
次に、以下を使用して、現在のブランチにある変更されたファイルのリストを取得し、マスターと比較します(比較先ブランチは簡単に変更できます)。
git log --oneline --pretty="format:" --name-only master.. | awk 'NF' | sort -u
以前、私はこれに依存していました:
git log --name-status <branch>..<branch> | grep -E '^[A-Z]\b' | sort -k 2,2 -u
ファイルのみのリストとその状態(追加、変更、削除)を出力します。
A foo/bar/xyz/foo.txt
M foo/bor/bar.txt
...
並べ替えの-k2,2
オプションを使用すると、変更の種類(A、M、D、)ではなくファイルパスで並べ替えられます。
次のようなファイル名だけが必要な場合:
dir/subdir/file1.txt
dir/subdir2/file2.sql
dir2/subdir3/file6.php
( tarコマンドのソースとして使用します)、コミットメッセージも除外する必要があります。
これを行うには、次のコマンドを使用します。
git log --name-only --oneline | grep -v '.{7} '
grepコマンドは、-v
7つの記号(コマンドのGitハッシュの長さ)で始まり、その後にスペースが続くすべての行(パラメーター)を除外しgit log
ます。そのため、すべてのGithash message
行を除外し、ファイル名のある行のみを残します。
便利な改善点の1つはuniq
、重複する行を削除するために追加することです。これにより、次のようになります。
git log --name-only --oneline | grep -v '.{7} ' | uniq