基于我的理解,命令git blame
应该显示文件中的每一行,作者和该行最后修改的提示。因此,例如,如果我运行git blame -- "<filename>"
并获取第5行的以下输出:
106b77db (Walrus 2016-03-24 10:01:36 +0800 5) .root {
这意味着线.root {
源自提交106b77db
中的作者Walrus
。换句话说,如果我使用git show -p 106b77db
检查106b77db
产生的补丁,我希望该行+.root {
会在diff中显示。确实,就是这样。
106b77db
的diff for <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
选项忽略空格会更改,即及时向后跟踪每行以查找最后一个引入 non - Whitespace的作者 - Whitespace更改该行(,我现在,现在获取第5行的以下输出:
b6a6e8a2 (Walrus 2016-03-31 23:32:50 +0800 5) .root {
但是,当我使用git show -p b6a6e8a2
检查b6a6e8a2
的补丁程序时,DIFF如预期的是.root {
而不是+.root {
。
b6a6e8a2
的摘要<filename>
:
+
+/* setting window to be transparent================================ */
.root {
-fx-background-color: transparent;
-}
-
git是否给我错误的输出,因为根据差异,在COMP b6a6e8a2
中根本没有修改该行.root {
?
我正在使用git 2.13.3.windows.1。
编辑:存储库是https://github.com/cs2103jan2016-f14-2j/main,该文件为 JimplePlanner/src/application.css
。升级到git 2.16.1.windows.4之后,问题仍然存在。
五年后,我遇到了同样的问题,并试图了解发生了什么。
事实证明,当您忽略空格时,git有时会理解变化是完全不同的变化,因为重复模式,在空格省略之后,它会更改检测到的"最小变化"的位置。p>在"不正确"上运行git diff -w
vs git diff
修订(在您的情况下,b6a6e8a
(说明了问题:
git diff b6a6e8a~..b6a6e8a
:
diff --git a/JimplePlanner/src/application.css b/JimplePlanner/src/application.css
index e4634ef..c0cc44b 100644
--- a/JimplePlanner/src/application.css
+++ b/JimplePlanner/src/application.css
@@ -1,248 +1,108 @@
/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
+
+/* setting window to be transparent================================ */
.root {
-fx-background-color: transparent;
-}
-
-.today-pane {
git diff -w b6a6e8a~..b6a6e8a
:
diff --git a/JimplePlanner/src/application.css b/JimplePlanner/src/application.css
index e4634ef..c0cc44b 100644
--- a/JimplePlanner/src/application.css
+++ b/JimplePlanner/src/application.css
@@ -1,248 +1,108 @@
/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
-.root {
- -fx-background-color: transparent;
-}
-
-.today-pane {
- -fx-background-radius: 10px;
- -fx-background-color: white;
- -fx-border-color: grey;
- -fx-border-radius: 10px;
-}
-
-.list-view {
- -fx-padding: 3px ;
- -fx-background-color: transparent;
-}
-
- .list-cell {
- -fx-padding: 10px ;
- -fx-background-color: transparent, -fx-background ;
-}
-
-.list-cell:empty {
- -fx-padding: 10px;
+/* setting window to be transparent================================ */
+.root {
-fx-background-color: transparent;
- -fx-background-insets: 0 ;
-}
+}/*============================================++================== */
当忽略空格时,diff算法最终会在一个地方删除.root {
,并在另一个位置添加。
这只是忽略空格的结果 - 有时会解释与您对它们的看法大不相同的变化;