1. 程式人生 > >git pull (merge遠端分支到本地)

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