10

我的老板和我是唯一在我们项目上工作的人,我们专门使用 Mac 进行开发。我们正在进行 groovy/grails 开发,并部署到 Linux 服务器。在我们的开发过程中任何地方都没有使用 MS Windows,但是不知何故,当我在 bash shell 中使用 git 比较文件时,我最终看到了那些^M表示 CR 的愚蠢字符(以及换行符,CRLF )。

这突然出现在文件中。

我在网上搜索了将 IntelliJ IDEA 设置为仅使用 LF 作为行尾的位置,但找不到。在谷歌上搜索关于 IDEA 的答案的困难加剧了我在这里的挫败感。

我想做这些事情:

  1. 在我的机器(OS X)上配置 git 以绝对拒绝任何 CRLF。

  2. 此外,我使用 gitolite 作为我们中央存储库服务器(即 Ubuntu Linux)的访问层。如果可以在 gitolite 中强制拒绝 CRLF,那就更好了。

  3. 将 IntelliJ IDEA 配置为从不将任何内容保存为 CRLF。如果可能的话,即使是现有的充满 CRLF 的文件,如果我添加这么多的空格并点击保存,所有CRLF 都会被剥离(转换为单个 LF)。

我认为自己通常非常精通 Git,但我对 CRLF 周围的所有配置感到非常困惑。有人能告诉我,对于我这个职位的人来说,所有这些设置应该是什么吗?

这里的要点是在纯粹的 *nix/LF 行结束环境中,我不想处理任何 CRLF 废话。这应该是绝对没有问题的,我讨厌处理它(以防你无法分辨)。

我希望 CRLF 永远离开我的生活,拜托。

4

1 回答 1

15

在本地,使用git config --global core.autocrlf input. 这将在提交时将所有 CRLF 转换为 LF。我不知道在 gitolite 上配置它的方法,而我在 IntelliJ 中知道的唯一行尾设置是让您指定用于新文件的内容的设置。它位于对话框底部的代码样式 -> 常规的设置中。

更改 core.autocrlf 设置后,您可以通过(从干净的工作树开始)删除所有跟踪的文件并执行 agit reset --hard以使它们恢复存在,从而清除所有坏行结尾。然后任何行尾错误的文件都将被标记为“已修改”,您可以提交它们以修复行尾。

于 2011-08-13T18:44:06.880 回答