列出git merge commit中的所有已修改文件-甚至是快速转发

我在想是否有一种方法,当我将一个分支合并到另一个分支中时,所有更改的文件都列在我的提交消息中,而不仅仅是两个分支中都被修改的文件。仅通过查看合并提交,就可以使我更好地了解分支中的更改。有没有办法做到这一点?

soupdiver asked 2020-07-30T09:06:29Z
3个解决方案
61 votes

我不知道如何在提交消息中做到这一点。 但是合并之后,这将给出受合并提交影响的所有文件的名称:

git log -m --name-only

仅用于提交的文件名列表:

git log -m -1 --name-only --pretty="format:" <Merge SHA>

由于合并有两个父级,因此存在一些空白,但可以轻松删除。

Schleis answered 2020-07-30T09:06:55Z
12 votes

您还可以使用-name-status命令查看任意两次提交之间的区别。 如果尚未合并分支,则可以指定分支名称并进行比较,否则可能需要找到分支的分支位置(像这样),这是合并之前的最后一次提交。

git diff --name-status <commit> <commit>

-name-status仅显示已更改文件的名称和状态。

R0MANARMY answered 2020-07-30T09:07:20Z
0 votes

假设您具有合并提交的SHA,然后git diff --name-only <SHA>^1 <SHA>

evgenii answered 2020-07-30T09:07:39Z
translate from https://stackoverflow.com:/questions/14717120/list-all-modified-files-in-git-merge-commit-even-the-fast-forwarded