当比较GIT存储库中的2个文件时,此索引值是什么意思



git diff --no-index可用于比较2个任意文件。

我尝试如下:

$ git diff --no-index -- /d/a.txt /d/b.txt
diff --git a/D:/a.txt b/D:/b.txt
index 7c4a013..01f02e3 100644
--- a/D:/a.txt
+++ b/D:/b.txt
@@ -1 +1 @@
-aaa
 No newline at end of file
+bbb
 No newline at end of file

我认为,由于我正在比较git回购中的2个文件,因此与索引无关。但是index 7c4a013..01f02e3 100644是什么意思?

diff中的 index标头未指GIT索引。取而代之的是,它包含前映射文件的(通常缩写)对象ID(diff中的"旧文件"),然后是两个点,然后是postimage文件的对象ID(diff中的"新文件")。/p>

这通常只是有关差异及其产生方式的信息,它不是(通常)用于验证补丁应用程序成功的信息,因为补丁的性质是您可以将补丁应用于其他变化的文件(例如,要有效地将补丁的内容"樱桃挑选"到另一个分支。

有一个位置在应用补丁时验证新对象ID,但是,当它应用二进制差异时。与应用包含上下文以允许它们重新定位并确实能够应用于其他文件的文本补丁不同,二进制补丁在翻译 Exact 时才有意义预先映射确切的后图像。结果,GIT将通过将其哈希与index行中呈现的哈希进行比较来验证二进制贴片实际上产生 Exact 输出。

最新更新