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:
    .gitignore
Please, commit your changes or stash them before you can merge.
Aborting

1. stash

通常遇到這個問題,你可以直接commit你的修改;

但我這次不想這樣。

看看git stash是如何做的。

git stash
git pull
git stash pop

接下來diff一下此文件看看自動合併的情況,並作出相應修改。

git stash: 備份當前的工作區的內容,從最近的一次提交中讀取相關內容,讓工作區保證和上次提交的內容一致。同時,將當前的工作區內容保存到Git棧中。

git stash pop: 從Git棧中讀取最近一次保存的內容,恢復工作區的相關內容。由於可能存在多個Stash的內容,所以用棧來管理,pop會從最近的一個stash中讀取內容並恢復。

git stash list: 顯示Git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。

git stash clear: 清空Git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。

2. 放棄本地修改,直接覆蓋之

git reset --hard
git pull
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章