git pull (merge遠端分支到本地)
Git的優勢是可以建立不同的branch,然後在每個branch上開發。那麼問題是:如果不同的branch之間需要做同步,比如sourceBranch上做的修改也需要同步到targetBranch,改怎麼做?
1. 如果一個branch是有遠端Git server管理的,另一個branch是自己本地的
cd <your workspace>
git branch //假定現在所在的branch是targetBranch,並最好保證沒有未提交的修改,並且已經更新到最新
git checkout -b sourceBranch //建立一個本地的sourceBranch並切換到sourceBranch
git commit //把sourceBranch上做的修改先提交
git checkout targetBranch //切換回targetBranch
git merge --no-ff sourceBranch //把sourceBranch的修改merge到targetBranch。注意:建議merge的時候總是用 --no-ff 選項
git status //保證現在workspace是乾淨的
git push //push到遠端,如果遠端有新的修改,先做一下git pull
2. 如果兩個branch都是遠端管理的,想把branchB的內容同步到branchA上
cd <your workspace>
git branch //假定現在所在的branch是branchA,並最好保證沒有未提交的修改,並且已經更新到最新
git checkout sourceBranch //確保同一個workspace能在不同的branch直接切換,即保證 .git/config裡 [remote "origin"] 的內容是 fetch = +refs/heads/*:refs/remotes/origin/*
git merge targetBranch
解決conflicts如果merge的結果裡有顯示conflicts
git commit //解決衝突後先commit到sourceBranch
git checkout targetBranch //切換到targetBranch
git merge --no-ff sourceBranch //建議merge的時候總是用 --no-ff 選項
git push origin targetBranch //把sourceBranch的修改merge到targetBranch之後,push到遠端的targetBranch