git 遇到的錯誤以及解決方式(持續更新...)

咖啡色的羊駝發表於2016-03-15

由於公司是使用git來儲存程式碼,故時長碰到一些小問題,在此記錄,持續更新….

1.合併git程式碼的時候遇到 Pull is not possible because you have unmerged files....

解決方法:
1.pull程式碼的時候會進行git merge操作導致衝突,需要將衝突的檔案先resolve掉,再進行git add -u, git commit之後才能成功git pull
2.如果想放棄本地的檔案修改,可以使用git reset --hard FETCH_HEAD,FETCH_HEAD表示上一次成功時git pull之後形成的commit點。後面就可以成功git pull.
ps:git merge會形成MERGE-HEAD(FETCH-HEAD) 。git push會形成HEAD這樣的引用。HEAD代表本地最近成功push後形成的引用。

2.其他分支可以合併,當合並master程式碼時候遇到You are not allowed to push code to protected branches on this project

解決方法:遇到這種情況多是master分支被設定為保護分支了,需要有管理員身份的賬號可以合併,如果想非管理賬號也想合併,需要將master去除保護分支的設定

3.程式碼可以pull卻不能pushAccess denied. fatal: The remote end hung up unexpectedly

解決辦法:
這類問題基本上是許可權問題,出現這種情況的原因有兩個,需要進行排查。
1.使用了git clone http://xxx的形式,這是以只讀的方式來獲取程式碼的。需要重新拉取程式碼。git clone git@xxx。這就是為什麼git提供了http和ssh兩種型別的連結的原因。
2.公鑰加錯地方了,專案公鑰是隻讀屬性,你要把它刪除,加到個人公鑰裡面

未完待續…

相關文章