用git pull來更新代碼的時(shí)候,遇到了下面的問題:
error: Your local?changes to the following files would be overwritten by merge:????
xxx/xxx/xxx.php
Please, commit your changes or stash them before you can merge.
Aborting
????????出現(xiàn)這個(gè)問題的原因是其他人修改了xxx.php并提交到版本庫(kù)中去了,而你本地也修改了xxx.php,這時(shí)候你進(jìn)行g(shù)it pull操作就好出現(xiàn)沖突了,解決方法,在上面的提示中也說的很明確了。
1、保留本地的修改 的改法
1)直接commit本地的修改?
?????????????????????????????????????????????????????????----也一般不用這種方法
2)通過git stash
? ? ? ? ? ? ? ? ? ? ? ? ? ????????---- 通常用這種方法
git stash
git pull
git stash pop
通過git stash將工作區(qū)恢復(fù)到上次提交的內(nèi)容,同時(shí)備份本地所做的修改,之后就可以正常git pull了,git pull完成后,執(zhí)行g(shù)it stash pop將之前本地做的修改應(yīng)用到當(dāng)前工作區(qū)。
git stash: 備份當(dāng)前的工作區(qū)的內(nèi)容,從最近的一次提交中讀取相關(guān)內(nèi)容,讓工作區(qū)保證和上次提交的內(nèi)容一致。同時(shí),將當(dāng)前的工作區(qū)內(nèi)容保存到Git棧中。
git stash pop: 從Git棧中讀取最近一次保存的內(nèi)容,恢復(fù)工作區(qū)的相關(guān)內(nèi)容。由于可能存在多個(gè)Stash的內(nèi)容,所以用棧來管理,pop會(huì)從最近的一個(gè)stash中讀取內(nèi)容并恢復(fù)。
git stash list: 顯示Git棧內(nèi)的所有備份,可以利用這個(gè)列表來決定從那個(gè)地方恢復(fù)。
git stash clear: 清空Git棧。此時(shí)使用gitg等圖形化工具會(huì)發(fā)現(xiàn),原來stash的哪些節(jié)點(diǎn)都消失了。
2、放棄本地修改 的改法
????????????????????????????????????????????????????????----這種方法會(huì)丟棄本地修改的代碼,而且不可找回
git reset --hard
git pull