调整git add --patch的缩进。

4

git diff 显示正确的缩进,但是 git add -p 没有,以下是相同更改的表示方式。

$ git diff
diff --git a/utils/utils.go b/utils/utils.go
index 3796954..b755bd5 100644
--- a/utils/utils.go
+++ b/utils/utils.go
@@ -11,7 +11,7 @@ import (
 )

 func LogsDir(homeDir string) string {
-       return filepath.Join(homeDir, "logs")
+       return filepath.Join(homeDirs, "logs")
 }

$ git add -p
diff --git a/utils/utils.go b/utils/utils.go
index 3796954..b755bd5 100644
--- a/utils/utils.go
+++ b/utils/utils.go
@@ -11,7 +11,7 @@ import (
 )

 func LogsDir(homeDir string) string {
-   return filepath.Join(homeDir, "logs")
+ return filepath.Join(homeDirs, "logs")
 }

(1/1) Stage this hunk [y,n,q,a,d,e,?]?

我的配置出了什么问题?


你是在使用制表符进行缩进吗? - Hasturkun
@Hasturkun 这是一个很好的指出,很可能是问题所在。但是有没有一种方法可以适当地显示制表符?这段代码是golang,它的格式化程序会将代码重写为这样。 - mango
2
可能你的配置没有问题。或者你的制表符扩展设置方式不同寻常。gofmt格式化程序使用制表符,它期望你的终端在每个第八列都有制表符。但我认为这两种情况应该是一样的。 - torek
翻译:分页可能会妨碍,并且使用其自己的规则格式化输出。如果您仍然拥有出现此问题的文件,请尝试禁用分页:git --no-pager diff -- that/file.go;更仔细地检查文件的内容(之前和之后的内容),以查看该行开头是否有空格和制表符的组合。 - LeGEC
1
另一个问题:为什么git diff和git show似乎会用空格替换制表符? - LeGEC
1个回答

0

git diff 的输出可能会通过分页器(如果 git 检测到它超过一个屏幕...)并在终端上打印之前,分页器可能会引入一些格式化。

尝试运行 git diff | catgit --no-pager diff,看看是否仍然有相同的输出。

还要检查版本控制文件的内容(git show HEAD:utils/utils.go > /tmp/utils.go)以及您磁盘上该文件的当前内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接