14

我正在使用SourceTree在提交之前进行简单的代码审查。在 SourceTree 中,我经常暂存和提交我在文档中更改的部分行。

几天前,我收到了一位在 Windows 上工作的程序员发来的一段代码,这导致了行尾问题。如果我没记错的话,我设置core.autocrlftrue,这解决了 windows 文件的问题。然而,从那一刻起,我在另一个我正在处理的回购中遇到了重大问题。如果我只想在 SourceTree 中暂存文件的一部分,我现在会收到一个巨大的错误消息git apply' failed with code 1: [/a/long/path/here] trailing whitespace in SourceTree。所以我想我需要core.autocrlf回到它是什么,我“假设”是(“所有的母亲......等等”)false(我以前从未搞砸core.autocrlf过)。因此,我将其设置为false突然使我仅更改一个字母的所有文件都标记为已更改文件中的所有行,这显然是代码审查期间的主要麻烦。

所以我四处搜索,我在 SO 上找到了一些解决方案的例子,但所有这些都使用添加额外的参数并做各种奇怪的事情。除了我不认为我可以在 SourceTree 的 GUI 中插入自定义命令这一事实之外,我最想知道的是;怎么变得这么乱?最重要的是,我不能回到原来的状态(不管那是什么),而不必每次我想登台和提交时都发出额外的命令吗?git add

请注意; 我不害怕命令行,我几乎整天都在它上面工作。但我只是喜欢在 SourceTree 等 GUI 中进行代码审查。

任何可以帮助我恢复正常的提示都会对我有很大帮助!

4

3 回答 3

16

设置“忽略空格”。看截图:

在此处输入图像描述

于 2018-02-13T14:57:41.360 回答
10

Atlassian Community上有一个关于这个问题的讨论。解决方法是将显示空白设置切换为忽略空白。

于 2018-02-05T15:15:30.843 回答
1

在您的 ~/.gitconfig 中,尝试添加以下部分:

[apply]
    whitespace = nowarn

https://git-scm.com/docs/git-apply中涵盖了此操作的全部详细信息

apply.whitespace 的选项是(来自 git-scm 页面):

  • "nowarn" 关闭尾随空格警告。
  • "warn" 输出一些此类错误的警告,但按原样应用补丁(默认)。
  • “修复”输出一些此类错误的警告,并在修复它们后应用补丁
  • "error" 为一些此类错误输出警告,并拒绝应用补丁。
  • "error-all" 与 error 类似,但会显示所有错误。

似乎 OS X 下 SourceTree 的默认值是“错误”,至少在 git 2.6.4 中是这样。或者它可能与我们默认的core.autocrlf = true

于 2016-01-04T17:18:14.123 回答