今天用git pull來更新代碼,遇到了下面的問題:
error: Your local changes to the following files would be overwritten by merge:
xxx/xxx/xxx.java
Please, commit your changes or stash them before you can merge.
Aborting
提示已經(jīng)很友好了,從網(wǎng)友處得到的答案直接幫我解決問題捞魁。
1.stash
通常遇到這個問題跨算,你可以直接commit你的修改论衍;但我這次不想這樣订框。
看看git stash是如何做的。
1萌狂、git stash
2、git pull
3怀泊、git stash pop
接下來diff一下此文件看看自動合并的情況茫藏,并作出相應(yīng)修改。
git stash: 備份當(dāng)前的工作區(qū)的內(nèi)容霹琼,從最近的一次提交中讀取相關(guān)內(nèi)容务傲,讓工作區(qū)保證和上次提交的內(nèi)容一致。同時枣申,將當(dāng)前的工作區(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 --hardgit pull