有了一个初始存储库,我创建了一个Test.TXT
文件并用以下内容填充它:
Version 1
Version 1
Version 1
接下来,它被提交:
$ git commit -am Version1
并进行Test.TXT
了一些修改:
Version 1
Version 2
Version 1
$ git commit -am Version2
现在我很想知道自版本 1 以来对文件进行了哪些更改:
$ git log --oneline -- Test.TXT
f315c22 (HEAD -> master) Version2
3b173c2 Version1
$ git blame 3b173c2 .. -- Test.TXT
^3b173c2 (Mergasov 2020-10-06 13:49:50 +0300 1) version 1
^3b173c2 (Mergasov 2020-10-06 13:49:50 +0300 2) version 1
^3b173c2 (Mergasov 2020-10-06 13:49:50 +0300 3) version 1
这种责备的输出让我有些意外。
首先,插入符号 (^) 在这里代表什么?责备文档将其称为边界标记(即,它标记文件的第一次提交)。但是,如果我输入HEAD
(这是 的第二次提交Test.TXT
)而不是3b173c2
,我会再次得到^f315c22
(在每一行中)。
因此,以这种方式使用 git blame 只会导致出现适合所选 SHA1 提交的文件版本,不是吗?它甚至没有显示之前提交的 SHA1(这样的结果可以通过使用不带两个点的责备来实现),也没有显示后续提交(我试图完成)。取而代之的是,我们可以看到键入的 SHA1 版本由插入符号表示。
任何人都可以解释使用此命令(带有双点)的原因是什么?