1

在我执行 git rebase 之后,我添加/修改的代码行在相应代码块的左侧缩进四个或更多空格。这是非常烦人且耗时的修复,更不用说它使 Objective-C 无法阅读(想象一下,如果我在 python 中编码......?)

Xcode(或其他什么,git?)添加制表符代替空格,我的 Xcode 设置为制表符空格。

在我的工作中,似乎没有人对它发生的原因有一个很好的答案。我将 trustctime 设为假,但这并没有帮助。有什么帮助吗?

4

3 回答 3

2

这可能是空白设置。查看git-config 手册页core.whitespace上的选项。如果你有那个设置以及,那么 git 会对你的空白做一些事情,可能包括在 rebase 期间。apply.whitespace

尝试找出什么git config core.whitespacegit config apply.whitespace是并在您的 ~/.gitconfig 文件中修改它们或使用类似的东西:

git config --global apply.whitespace nowarn
于 2013-03-26T22:23:35.320 回答
0

更新
我认为这可能是git whitespace woes的副本
END UPDATE

除非您对 git post-commit 钩子或 git config core.whitespace 设置进行了一些自定义(感谢您指出 jesse),否则 git 不会将空格转换为制表符,反之亦然或类似的东西。更改通常是您的环境/文件和合并活动的结果。

在以各种形式处理过这个问题后,我猜你的一些同行正在使用制表符,而一些正在使用空格。人们整天都在争论你是否应该使用制表符或空格,并且取决于我跳边的日子和语言。这不是我要在这里讨论的内容。但是,几乎所有参与这场战争的理性参与者都会同意,无论您选择哪一个,您都需要选择一个并在整个项目中始终如一地使用它。

大多数合理的编辑器允许您控制是否应该插入制表符或空格,我知道 XCode 对此并不陌生。

我建议显示空白或简要使用编辑器,让您查看空白以了解实际差异。另外,在更正整个文件后,您也可以只使用 git diff -w -b 来抑制空白更改。也就是说,您应该真正弄清楚到底是什么导致您的空白在变基上发疯,因为这表明我很可能 git 被混合使用弄糊涂了,并且多人在多个点以不同的分辨率更正它。

祝你好运,这绝非易事,当他们的奶酪被移动时,总会有人不高兴。

于 2013-03-26T21:53:57.843 回答
0

我不知道我的 git-config 是什么问题,但是在清除它并重新设置后,问题就解决了。我没有旧的 git-config :( 这发生在几个月前,但我想我会表示这与 xcode 无关。

于 2013-12-28T23:14:32.357 回答