1.首先是CRLF與LF格式問題。
如果你發(fā)現(xiàn)你什么都沒改沸停,但是git status命令下面一大堆文件改動。使用git diff命令查看區(qū)別時醉冤,發(fā)現(xiàn)幾乎每一行代碼后面都會有個^M的區(qū)別凉蜂,那恭喜你碰到格式問題了膨更,不過解決方法很簡單着裹,在git bash里面輸入下面這個命令即可:
git config --global core.autocrlf true
那為什么會產(chǎn)生這個問題呢幢尚?
這個問題涉及到換行符茫负,不同操作系統(tǒng)下蕉鸳,換行符是不一樣的。Windows默認采用的是CRLF格式忍法,Linux則采用的LF格式潮尝。
具體請參考這篇博客
一、AutoCRLF
提交時轉換為LF饿序,檢出時轉換為CRLF
git config --global core.autocrlf true
提交時轉換為LF勉失,檢出時不轉換
git config --global core.autocrlf input
提交檢出均不轉換
git config --global core.autocrlf false
二、SafeCRLF
拒絕提交包含混合換行符的文件
git config --global core.safecrlf true
允許提交包含混合換行符的文件
git config --global core.safecrlf false
提交包含混合換行符的文件時給出警告
git config --global core.safecrlf warn
2.old mode與new mode問題
解決完CRLF問題后原探,緊接著乱凿,你可能會碰到old mode與new mode問題顽素,這個問題大概是下面這樣的:
你發(fā)現(xiàn)你什么都沒改,可是git status提示你文件是有改動的徒蟆,等你用git diff查看改動胁出,發(fā)現(xiàn)啥都沒有,只是顯示成下面這樣:
碰到這個問題段审,直接執(zhí)行下面這個命令吧:
git config --add core.filemode false
具體原因請參考這篇博客
3.bash問題導致的Fetch failed: Could not read from remote repository.
如果你也跟我一樣是windows的Android Studio用戶全蝶,并且不太熟悉cygwin,那么請換成git bash吧寺枉。抑淫。
我是被這個cygwin坑到了。姥闪。丈冬。
具體情況是這樣的:在cygwin的bash里面,用命令行可以正常執(zhí)行pull, commit ,以及push等等git常用命令甘畅,但當你用Android Studio去執(zhí)行時,會發(fā)現(xiàn):
失斖疏唾!失敗函似!失敾痹唷!
不管你怎么去Setting里面設置git模式為native或者built-in撇寞,都毫無卵用顿天。。蔑担。
并且E品稀!啤握!你在cygwin里面提交代碼或者更新代碼以后鸟缕,Android Studio是不會同步的!E盘А懂从!Android Studio里面的Local changes里面會出現(xiàn)一堆改動,然鵝蹲蒲,你什么都沒改番甩。。届搁。
如果你也跟我一樣出現(xiàn)這個問題缘薛,解決方案如下:
將你的bash從cygwin換成git bash窍育!
將你的bash從cygwin換成git bash!
將你的bash從cygwin換成git bash掩宜!