问题
This is pretty unintuitive:
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.
According to various media with core.autocrlf=false
there should be no linefeed conversion at all.
In project root I discovered .gitattributes
with the line:
# Auto detect text files and perform LF normalization
* text=auto
If I comment it, the warning goes away. The question - how can I override this .gitattibutes
setting automatically?
回答1:
.gitattributes
overrides all config settings, so it really can't be overridden; it is the "overrider," so to speak. While you can simply remove the line, this will cause inconsistent behavior on other developers' machines if they have core.autocrlf=true
. So the best bet would be to add the following line to .gitattributes
: * -text
. This will disable CRLF processing for all files.
回答2:
At least in modern versions of git, .git/info/attributes
(or $GIT_DIR/info/attributes
) overrides .gitattributes
for local configuration.
Use * !text
to use the value of core.autocrlf
, or * -text
to force no conversion.
See the documentation for gitattributes and the text attribute.
Also note: core.eol, the eol attribute
来源:https://stackoverflow.com/questions/30978710/override-gitattributes-text-auto-in-windows