我們在使用Git的過程中經(jīng)常會遇到各種問題,對于新手來說一個git命令敲錯了就是一種災(zāi)難,本文會不斷更新使用Git過程中常見的問題和解決方法。

1、Git沖突:“commit your changes or stash them before you can merge.”
用git pull來更新代碼的時候,遇到了下面的問題:
error: Your local changes to the following files would be overwritten by merge:
......
Please, commit your changes or stash them before you can merge.
Aborting
出現(xiàn)這個問題的原因是版本庫中的項目被修改提交了,而你本地也修改了項目,這時候你進行git pull操作就會出現(xiàn)沖突,解決方法分兩種情況:
1、保留本地的修改的改法
通過git stash將工作區(qū)恢復(fù)到上次提交的內(nèi)容,同時備份本地所做的修改,之后就可以正常git pull了,git pull完成后,執(zhí)行git stash pop將之前本地做的修改應(yīng)用到當前工作區(qū)。
git stash
git pull
git stash pop
git stash: 備份當前的工作區(qū)的內(nèi)容,從最近的一次提交中讀取相關(guān)內(nèi)容,讓工作區(qū)保證和上次提交的內(nèi)容一致。同時,將當前的工作區(qū)內(nèi)容保存到Git棧中。
git stash pop: 從Git棧中讀取最近一次保存的內(nèi)容,恢復(fù)工作區(qū)的相關(guān)內(nèi)容。由于可能存在多個Stash的內(nèi)容,所以用棧來管理,pop會從最近的一個stash中讀取內(nèi)容并恢復(fù)。
git stash list: 顯示Git棧內(nèi)的所有備份,可以利用這個列表來決定從那個地方恢復(fù)。
git stash clear: 清空Git棧。此時使用gitg等圖形化工具會發(fā)現(xiàn),原來stash的哪些節(jié)點都消失了。
2、放棄本地修改的改法
git reset --hard
git pull
這種方法會丟棄本地修改的代碼,而且不可找回,特別提醒git reset --hard一定要慎用,一旦用錯后悔莫及。
如果你喜歡本文章,還請點個關(guān)注和喜歡,我會為大家不斷地帶來Python學習筆記。