【发布时间】:2015-12-07 01:15:09
【问题描述】:
我使用SourceTree 在提交前轻松审查代码。在 SourceTree 中,我经常暂存和提交我在文档中更改的部分行。
几天前,我收到了一位在 Windows 上工作的程序员发来的一段代码,它在行尾方面造成了一些问题。如果我没记错的话,我将core.autocrlf 设置为true,这解决了windows 文件的问题。
然而,从那一刻起,我在另一个我正在处理的回购中遇到了重大问题。如果我只想在 SourceTree 中暂存文件的一部分,我现在会收到一个大错误,说 git apply' failed with code 1: [/a/long/path/here] trailing whitespace in SourceTree。所以我想我需要将core.autocrlf 设置回原来的样子,我“假设”是(“所有人的母亲……等等”)false(我以前从未与core.autocrlf 混淆)。所以我将它设置为false,这突然使我只更改了一个字母的所有文件都被标记为更改了文件中的所有行,这显然是代码审查期间的主要麻烦。
所以我四处搜索,在 SO 上找到了一些 examples 和 solutions,但这都使用向 git add 添加额外参数并做各种奇怪的事情。除了我不认为我可以在 SourceTree 的 GUI 中插入自定义命令这一事实之外,我最想知道的是;怎么变得这么乱?最重要的是,我不能回到原来的样子(不管是什么),而不必每次我想要暂存和提交时都发出额外的命令吗?
请注意;我不怕命令行,我几乎整天都在它上面工作。但我只是喜欢在 SourceTree 等 GUI 中进行代码审查。
任何可以帮助我恢复正常的提示都会对我有很大帮助!
【问题讨论】:
标签: git line-endings core.autocrlf