我在一个仅限Windows的工作环境中工作,开发人员使用各种工具来编辑他们的文件。我们使用.git
和atlassian堆栈来编写代码版本。我几乎都喜欢它。
我刚刚结束了一场漫长而艰苦的斗争,围绕git如何以及为什么解释行结尾以及core.autocrlf
所做的事情。我们决定使用core.autocrlf true
,一切都很好。
我很想知道如何更改git status
的这种行为:
CRLF
行结尾的文件。我将行结尾更改为LF
$ git status
On branch somebranch
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: Src/the_file_i_changed_to_LF.js
但是......
$ git commit -a
warning: LF will be replaced by CRLF in Src/the_file_i_changed_to_LF.js.
The file will have its original line endings in your working directory.
On branch somebranch
nothing to commit, working directory clean
对此:
CRLF
行结尾的文件。我将行结尾更改为LF
$ git status
On branch somebranch
nothing to commit, working directory clean
这可能吗?
我相信可能的重复不能解决我正在寻找的答案。我想强调的是,我(我想)知道我的设置core.autocrlf true
做了什么,并希望保持这种方式。我感兴趣的是要么不检测git status
中无法提交的更改,要么理解为什么这是不可能的。
答案 0 :(得分:1)
当您设置core.autocrlf true
时,工作目录中的所有文件都将以CRLF
行结束(与存储库中结尾的实际行相比较少)。对于大多数Windows用户来说,这已经足够了。
根据您的问题,我了解您希望将工作目录文件(=本地文件)与LF
一起使用。所以,在这里你应该使用core.autocrlf input
。这将为您提供与存储库中结尾的确切行(但仍将确保所有签入都使用LF
)。
在此answer中详细了解true,false和input的区别。