提交无需更改

时间:2015-03-03 14:32:10

标签: git merge commit

我有一个提交我的网站:

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中哪些文件发生了变化?

2 个答案:

答案 0 :(得分:5)

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

但是,此提交是一种特殊情况,因为它是一个合并提交。对于合并提交,git show仅显示相对于两个祖先提交的的更改(要合并的提交)。因此,如果合并干净地解决(没有冲突),git show MERGE-COMMIT-ID将不显示任何内容。

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

git diff 9e79649 7745ace8

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

答案 1 :(得分:3)

您正在查看的提交是合并提交。它不一定有变化"与其他提交的意义相同。它是来自另外两个提交9e79649&的变化的组合。 09e570a

如果9e79649中没有错误,我还会检查它是否存在于09e570a(合并的另一个父提交)中,然后再尝试深入研究合并提交。

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