使用git pre-commit hook修复mac / windows新行?

时间:2013-03-05 12:02:49

标签: git githooks git-bash

在我们的办公室,我们在大约10名开发人员的团队中工作。他们中的大多数都有Mac机器。最近我意识到,当我检查我的工作差异时(仅更改一行代码后)几乎每行都会更改,但git diff表示您的更改与原始版本完全相同。经过一些研究,结果证明这是一个不同的新线。在我做任何事之前,它是'\ r \ n'(CR + LF,0x0D0A),并且在我改变之后所有非Unix新行(\ r \ n)都改为Unix(\ n)。

我意识到我可以让我的同事更改他们的IDE设置,但我意识到我可以准备一些需要在每次提交时运行的脚本。

如何在git commit之前运行bash脚本?如何使用git pre-commit hook?

1 个答案:

答案 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