我正在试图弄清楚为什么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
行的特定文件类型。
感谢您的帮助!
答案 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
之后我有一个干净的分支,所有文件都是一种格式。希望,这会有所帮助。