6

这是非常不直观的:

C:\python-tdl\examples\termbox>git config core.autocrlf
false

C:\python-tdl\examples\termbox>git commit termbox.py
warning: LF will be replaced by CRLF in examples/termbox/termbox.py.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in examples/termbox/termbox.py.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in examples/termbox/termbox.py.
The file will have its original line endings in your working directory.
Aborting commit due to empty commit message.

根据各种媒体的说法,core.autocrlf=false根本不应该有换行转换。

在项目根目录中,我发现.gitattributes以下行:

# Auto detect text files and perform LF normalization
* text=auto

如果我评论它,警告就会消失。问题 - 我怎样才能.gitattibutes自动覆盖这个设置?

4

2 回答 2

6

.gitattributes覆盖所有配置设置,所以它真的不能被覆盖;可以这么说,它是“超越者”。虽然您可以简单地删除该行,但这将导致其他开发人员的机器上出现不一致的行为,如果他们有core.autocrlf=true. 所以最好的选择是将以下行添加到.gitattributes: * -text。这将禁用所有文件的 CRLF 处理。

于 2015-06-22T11:37:10.827 回答
4

至少在现代版本的 git 中,.git/info/attributes(或$GIT_DIR/info/attributes)覆盖.gitattributes本地配置。

用于* !text使用 的值core.autocrlf,或* -text强制不进行转换。

请参阅gitattributes属性text文档。

另请注意:core.eol ,属性eol

于 2018-06-20T14:40:50.277 回答