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