在我们的办公室,我们在大约10名开发人员的团队中工作。他们中的大多数都有Mac机器。最近我意识到,当我检查我的工作差异时(仅更改一行代码后)几乎每行都会更改,但git diff
表示您的更改与原始版本完全相同。经过一些研究,结果证明这是一个不同的新线。在我做任何事之前,它是'\ r \ n'(CR + LF,0x0D0A),并且在我改变之后所有非Unix新行(\ r \ n)都改为Unix(\ n)。
我意识到我可以让我的同事更改他们的IDE设置,但我意识到我可以准备一些需要在每次提交时运行的脚本。
如何在git commit之前运行bash脚本?如何使用git pre-commit hook?
答案 0 :(得分:4)
一切都在https://help.github.com/articles/dealing-with-line-endings上解释 在这里http://git-scm.com/docs/gitattributes#_checking-out_and_checking-in
对于Linux / Mac机器,请使用
git config --global core.autocrlf input
对于Windows机器,请使用
git config --global core.autocrlf true
使用此设置git会在每次提交之前将所有\r\n
行结尾转换为\n
。