在前天写完代码,commit时,报了一个错误:
fatal(好像又是error,记不太清了): rename .git/a5/xxx to .git/a5/xxxxxxxxxxx failed. Should I try again?(y/n)
当时就感觉懵逼了,自己应该没动过.git中的文件才对,但不管动没动,问题总得解决,但选"y"就一直重复这个错误,选,选"n", 就直接报错退出了。查谷歌竟然没找到文章介绍同样的问题,没办法,只好求助学长了,学长看了看后试着用idea来提交代码,这时候报的错又变了,变成了:
Git rename from index.lock to index failed. Should I try again?(y/n)
谷歌这个问题,在Stack Overflow发现了同样的问题
然后有人给出了,解决办法
照着做之后,commit没有报错,以为圆满解决,但运行git status,发现文件一个都没交上去
然后再
git add .
git commit -m ""
还是同样的错误
当时还以为自己在无意中操作了.git的文件,就重新clone了一遍项目,把自己写的代码放进去,但仍然报错,
很明显是代码的问题,在学长的建议下一个文件一个文件的提交找到了问题代码
问题就在那个contributionList上,改个名字,或者把它删除了都能顺利提交,但就是这个名字不行。(如果有大佬知道为什么,希望评论告知一下)
这时张喜硕学长过来了,就给他又演示了一遍错误,他发现了
(不是问题文件,当时没有截图)
Git-warning: CRLF will be replaced by LF in XXX
CRLF : windows 环境下的换行符
LF : linux 环境下的换行符
这个错误的意思,就是文件中存在两种环境的换行符,git 会自动替换 CRLF 为 LF ,所以提示警告。
关于这个问题,网上的文章很多,解决办法也很简单,关闭自动转换即可
git config --global core.autocrlf false
果然,问题解决了,作者配的漫画很有意思,同时也可以表现我遇到这个问题时的心情
(picture from Luis Tubes's blog post )
再次感谢两位学长的帮助
总结
还是不懂为什么别人的都是警告,而我的哪行代码却会导致上述问题,如果您正好知道,希望能评论告知。记得刚学c语言时老师说,一般的warning都可以忽略,因此对于warning自己总是直接忽略,希望通过这次教训能改掉这个坏习惯。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。