2

我试图弄清楚为什么 GIT 不对 javascript 和 ruby​​ 文件应用反向补丁,而是对 php 文件应用反向补丁。我的步骤是:

...modifying some php, ruby and js files...

git stash#将更改保存到存储中

git stash apply#应用它们

git stash show -p | git apply -R#反向修补

它工作正常并且不应用我隐藏的更改,但仅适用于 php 文件,不适用于 ruby​​ 或 javascript。所有文件(甚至 php)都有CRLF行尾。当我尝试使用LF行结尾的文件时,根本没有问题,但我仍然想知道,为什么它只适用于特定文件类型的CRLF行。

谢谢你的帮助!

4

1 回答 1

1

我发现了这个问题,我认为我的解决方案对其他人有用。实际上,它发生在从 Subversion 到 Git 的初始迁移之后。问题是项目中的文件有不同的行尾,所以它不依赖于文件类型。当 Git 在结帐期间尝试将它们全部转换为一种格式时,它是不正确的,并且在某些情况下CRLF被破坏了。我发现的解决方案:

git config --global core.autocrlf input# 在 OSX 或 Linux 上设置此设置

git config --global core.autocrlf true# 在 Windows 上设置此设置

git rm --cached -r .

git add .

git commit -m "Line endings fix. Now all lines are in LF format"

git reset --hard

之后,我有了一个干净的分支,所有文件都采用一种格式。希望,这会帮助某人。

于 2012-11-01T11:18:54.623 回答