在使用 git 進行版本管理的開發過程當中,常常遇到上傳或者拉取分支的時候衝突,在遇到衝突的時候,常常使用下面兩個方式解決,雖然第一個方案看起來比較複雜,可是若是按我以前的文章: Git 工做流 進行工做的話,只須要執行三、四、5三步便可。git
雖然提供的解決方案,可是最好仍是從根源上下降衝突出現的頻率纔是最好的方案。shell
本文主要討論 Git feature 與 master(develop) 分支衝突解決方案。hexo
git pull
: 同步遠程分支,發現當前的開發流有了新的提交,且與本身開發的功能有衝突。git checkout -b feature
: Checkout 到 feature 分支。git checkout master
git pull origin master
: 切換到 master 分支並拉取最新的內容。git checkout feature
git rebase master
: 切換到 feature 分支並將 master 的修改合併,並解決衝突。git add -A
git rebase --continue
: 將修改內容保存並繼續 rebase 操做。applying: xxxx
: 看到這個提示表示已經完成了合併。git checkout master
git merge feature
: 切換到 master 分支並將 feature 分支內容合併過來。在修改的時候,忘記新建對應的分支了,能夠按上面的方案,但保存,而後建立新的分支,再將遠程分支對應分支的內容 reset
回未修改的狀態。或者使用 git stash
系列命令解決衝突。app
git stash
: 暫存修改的內容git pull
: 拉取最新的內容git stash apply
or git stash pop
: 將暫存的內容合併進來git stash apply
: 應用暫存內容可是不刪除,能夠是最近的一次暫存,也能夠按序號應用 git stash apply stash@{0}
git stash drop
: 移除暫存的內容git stash pop
: 應用的同時從列表中移除,只能操做最近的一次 stash 的內容git stash list
: 查看整個的暫存列表git stash save
: 來查看對應的全部的修改,這樣就能夠很是方便的找到最好的實現方案git stash show -p stash@{1}
: 不輸入對應的 stash@{}
內容則將最近的 stash 與當前分支作比較,若是加了則用指定的暫存code
error Your local changes to the follow files would be overwritten by merge: xxxx Please commit your changes or stash them before you merge .
能夠先add 修改的文件,而後再applyblog
git add test.txt git stash apply
文章首發於:https://www.zucchiniy.cn開發