根据我的理解,命令git blame
应该为文件中的每一行显示作者和上次修改该行的提交。例如,如果我运行git blame -- "<filename>"
并获得第5行的以下输出:
106b77db (Walrus 2016-03-24 10:01:36 +0800 5) .root {
这意味着行.root {
来自提交Walrus
中的作者106b77db
。换句话说,如果我使用106b77db
检查由git show -p 106b77db
生成的修补程序,我希望行+.root {
显示在差异中。的确,情况确实如此。
来自106b77db
的{{1}}差异的片段:
<filename>
现在,当我运行 /* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
+.root {
+ -fx-background-color: transparent;
+}
+
时,(-w
选项忽略空格更改,即及时向后追踪每一行,以找到引入非 -whitespace的最后一位作者更改到该行),我现在获得第5行的以下输出:
git blame -w -- "<filename>"
但是,当我使用b6a6e8a2 (Walrus 2016-03-31 23:32:50 +0800 5) .root {
检查b6a6e8a2
的修补程序时,差异按预期显示git show -p b6a6e8a2
而不是.root {
。
来自+.root {
的{{1}}差异的片段:
b6a6e8a2
Git是否给了我错误的输出,因为根据差异,提交<filename>
中的行+
+/* setting window to be transparent================================ */
.root {
-fx-background-color: transparent;
-}
-
根本没有被修改过?
我正在使用Git 2.13.3.windows.1。
编辑:存储库为https://github.com/cs2103jan2016-f14-2j/main,文件为.root {
。升级到Git 2.16.1.windows.4后,问题仍然存在。