3

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

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

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

4

1 回答 1

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每次提交之前。

于 2013-03-05T18:25:05.543 回答