情況一
git pull遇到錯誤:error: Your local changes to the following files would be overwritten by merge
由于你跟別人改了同一份文件,所以pull代碼的時候會這樣屑墨。
解決方法1:可以保留本地改動
git stash //保存當前工作進度舆绎,會把暫存區(qū)和工作區(qū)的改動保存起來
git pull origin master
git stash pop
如此一來负甸,服務(wù)器上的代碼更新到了本地,而且你本地修改的代碼也沒有被覆蓋,之后使用add礁遣,commit雪侥,push 命令即可更新本地代碼到服務(wù)器了碗殷。
拓展
git stash save 'message...'可以添加一些注釋
git stash list 顯示保存進度的列表。也就意味著速缨,git stash命令可以多次執(zhí)行锌妻。
git stash clear刪除所有存儲的進度。
git stash pop [–index] [stash_id]
git stash pop 恢復最新的進度到工作區(qū)旬牲。git默認會把工作區(qū)和暫存區(qū)的改動都恢復到工作區(qū)仿粹。
git stash pop --index 恢復最新的進度到工作區(qū)和暫存區(qū)。(嘗試將原來暫存區(qū)的改動還恢復到暫存區(qū))
git stash pop stash@{1}恢復指定的進度到工作區(qū)原茅。stash_id是通過git stash list命令得到的
通過git stash pop命令恢復進度后吭历,會刪除當前進度。
解決方法2:不保留本地改動
git reset --hard
git pull origin master
參考:
https://blog.csdn.net/misakaqunianxiatian/article/details/51103734
https://blog.csdn.net/anhenzhufeng/article/details/78052418
https://blog.csdn.net/daguanjia11/article/details/73810577
情況二
本地branch1已改動擂橘,但是不想提交晌区,想要從master上重新建分支branch2
在branch1上保存已改的東西:git stash
切換到master上:git checkout master
在master分支上新建branch2:git checkout -b branch2
這樣branch2上的內(nèi)容就跟master上一樣了。
參考