2012-02-29 105 views
0

有被下列日志:git的承诺SHA的不同之处git的差异

$ git log 
commit d335ed918ecadec2152152f76fd3c99dc59de80b 
Author: author <[email protected]> 
Date: Wed Feb 29 18:45:48 2012 +0100 

    a 

commit ed937db6bb2350e37ffb1d0e2e4141ec4e650bcf 
Author: author <[email protected]> 
Date: Wed Feb 29 18:45:22 2012 +0100 

    a 

commit 87dde7bc9fc081388b824f7e74267485fcc4edb0 
Author: author <[email protected]> 
Date: Wed Feb 29 17:26:49 2012 +0100 

    init 
$ git diff ed937db6bb2350e37ffb1d0e2e4141ec4e650bcf d335ed918ecadec2152152f76fd3c99dc59de80b --full-index 
diff --git a/a.cpp b/a.cpp 
index f0df46dd3ce8569533dce862927c1b84cec41c04..0fe7d3905febc2c4abb08849bef266c093f6caca 100755 
--- a/a.cpp 
+++ b/a.cpp 
@@ -1 +1 @@ 
-class A{}; 
+class A{}fdfds; 

的问题是,ed937db6bb2350e37ffb1d0e2e4141ec4e650bcf变更为变更为0fe7d3905febc2c4abb08849bef266c093f6cacaf0df46dd3ce8569533dce862927c1b84cec41c04d335ed918ecadec2152152f76fd3c99dc59de80b通过git的差异时的处理。如何使这些值不会改变并保持不变?

回答

1

没有什么改变,因为它在邮件中指出,f0df46d... & 0fe7d39...都在Git index引用,这是在这些提交的实际文件。如果你在差异中列出了多个文件,它们都会有不同的索引SHA。

0

我相信你所看到的提交对象索引什么:

> ed937db6bb2350e37ffb1d0e2e4141ec4e650bcf d335ed918ecadec2152152f76fd3c99dc59de80b 

和文件对象的索引

diff --git a/a.cpp b/a.cpp 
index f0df46dd3ce8569533dce862927c1b84cec41c04..0fe7d3905febc2c4abb08849bef266c093f6caca 

如果您提交包含多个文件,你会看到多条线路。总之,你不能让这些索引行显示提交,因为它们不同于提交中改变的各种文件,因此向你显示适用于“索引”行的文件的散列,而不是提交。