ブランチで変更されたすべてのファイルのリストを取得するにはどうすればよいですか? ブランチがすでにマスターにマージされているため、git-diff を実行できません。
ブランチ内のすべてのコミットを一覧表示し、重複することなくファイルのパスを抽出する方法が必要です。
誰かが以前にこのようなことをしたことがあるなら、それは本当に感謝されるでしょう.
たくさんの感謝!
ブランチをmasterからブランチされたBranchAと見なす場合、次のことができます。
git diff --name-status `git merge-base BranchA master`..BranchA
これにより、ブランチで変更されたファイルのリストが表示されます (変更済みの場合は M、追加済みの場合は A、削除済みの場合は D)。
これは、ブランチがマージコミットを指している場合に機能します。
git diff branch_name^..master --name-only
agit log
を実行して、違いを知りたいコミットを特定します。必要なコミットのハッシュがaaaaaa
. 次に実行します。
git diff aaaaaa --stat
私はこの同じ問題に遭遇し、@Michael Burtinのソリューションはほとんどの場合機能しました。ただし、これを任意のブランチで動作するスクリプトに追加したかったため、ブランチ名を含めることはできません。これは私が思いついたものです:
git diff --name-only $(git merge-base master HEAD)
master と現在のブランチの両方の最も近い祖先を見つけてから、そのコミットを現在のブランチと比較します。