GIT stash apply reverse不适用于js和rb文件

时间:2012-10-30 17:34:52

标签: git newline reverse git-stash git-patch

我正在试图弄清楚为什么GIT不对javascript和ruby文件应用反向补丁,但它是在php文件上进行的。我的步骤是:

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

git stash #saving更改为藏匿

git stash apply #applying他们

git stash show -p | git apply -R #reverse patching

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

感谢您的帮助!

1 个答案:

答案 0 :(得分: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

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