8

ブランチで変更されたすべてのファイルのリストを取得するにはどうすればよいですか? ブランチがすでにマスターにマージされているため、git-diff を実行できません。

ブランチ内のすべてのコミットを一覧表示し、重複することなくファイルのパスを抽出する方法が必要です。

誰かが以前にこのようなことをしたことがあるなら、それは本当に感謝されるでしょう.

たくさんの感謝!

4

4 に答える 4

3

ブランチをmasterからブランチされたBranchAと見なす場合、次のことができます。

git diff --name-status `git merge-base BranchA master`..BranchA

これにより、ブランチで変更されたファイルのリストが表示されます (変更済みの場合は M、追加済みの場合は A、削除済みの場合は D)。

于 2012-10-24T13:01:02.127 に答える
2

これは、ブランチがマージコミットを指している場合に機能します。

git diff branch_name^..master --name-only
于 2012-10-24T08:59:11.783 に答える
2

agit logを実行して、違いを知りたいコミットを特定します。必要なコミットのハッシュがaaaaaa. 次に実行します。

git diff aaaaaa --stat
于 2012-10-24T18:24:23.623 に答える
2

私はこの同じ問題に遭遇し、@Michael Burtinのソリューションはほとんどの場合機能しました。ただし、これを任意のブランチで動作するスクリプトに追加したかったため、ブランチ名を含めることはできません。これは私が思いついたものです:

git diff --name-only $(git merge-base master HEAD)

master と現在のブランチの両方の最も近い祖先を見つけてから、そのコミットを現在のブランチと比較します。

于 2017-01-04T06:27:02.227 に答える