提交而不做任何更改

Commit without changes

我有一个 borke 我的网站的提交:

commit 7745ace83eff751025526b7a998406e5b5d1873d
Merge: 9e79649 09e570a
Date:   Thu Feb 19 17:07:03 2015 -0300

    Merge branch 'desarrollo' of git+ssh://192.168.1.200/home/git/project into dev

commit 9e79649a64ef9925655167a8e237d5fd36fad51e
Date:   Thu Feb 19 17:06:24 2015 -0300

    Comment. Blah... Blah...

 dir/file.inc        |    1 +
 db/file2.sql    |  327 ++++++-----------------------------------
 file3.php                      |    7 +-
 file4.php                     |    1 +
 admin/file5.php |    8 +
 admin/file6.php      |    6 +-
 admin/file7.php     |   12 +-
 7 files changed, 78 insertions(+), 284 deletions(-)

如果更改提交 7745ace83eff751025526b7a998406e5b5d1873d,则站点已损坏。 在提交 9e79649a64ef9925655167a8e237d5fd36fad51e 中,该站点没有错误。

我如何知道提交 7745ace83eff751025526b7a998406e5b5d1873d 中更改了哪些文件?

通常,git show COMMIT-ID 会显示提交 COMMIT-ID 引入的更改。

但是,这个提交是一个特例,因为它是一个合并提交。对于合并提交,git show 将仅显示相对于两个祖先提交(正在合并的提交)的更改。因此,如果合并完全解决(没有冲突),git show MERGE-COMMIT-ID 将不显示任何内容。

对于合并提交,您可以使用 git diff,指定祖先提交和合并提交。在您的情况下,比较您命名的两个提交:

git diff 9e79649 7745ace8

对于 git diffgit show,您可以使用参数 --stat 仅查看更改摘要 - 对于快速概览很有用。

您正在查看的提交是合并提交。它不一定具有与其他提交相同的 "changes" 。它是来自其他两个提交 9e7964909e570a 的更改的组合。

如果 9e79649 中不存在错误,我还会在尝试深入研究更改之前检查它是否存在于 09e570a(合并的另一个父提交)中在合并提交中。

提交消息是常规合并的默认消息,因此看起来没有任何冲突得到解决。如果存在冲突,git 会将它们附加到提交消息中(前提是未使用 -m 选项)并且您会知道要查看哪些文件。