Git merge 不一樣的branch

Git的優點是能夠建立不一樣的branch,而後在每一個branch上開發。那麼問題是:若是不一樣的branch之間須要作同步,好比sourceBranch上作的修改也須要同步到targetBranch,改怎麼作?git

A). 若是一個branchA (targetBranch)是有遠程Git server管理的,另外一個branchB (sourceBranch)是本身本地的,即把sourceBranch的修改merge到targetBranch上:fetch

   1. cd <your workspace>spa

   2. git branch  //假定如今所在的branch是targetBranch,並最好保證沒有未提交的修改,而且已經更新到最新server

   3. git checkout -b branchB  //建立一個本地的sourceBranch並切換到sourceBranch開發

   4. git commit  //把sourceBranch上作的修改先提交rem

   5. git checkout branchA  //切換回targetBranchget

   6. git merge --no-ff branchB  //把sourceBranch的修改merge到targetBranch。注意:建議merge的時候老是用 --no-ff 選項同步

   7git status  //保證如今workspace是乾淨的it

   8. git push origin branchA //push到遠程,若是遠程有新的修改,先作一下git pullco

 

B). 若是兩個branch都是遠程管理的,想把branchB (sourceBranch)的內容同步到branchA (targetBranch)上

   1. cd <your workspace>

   2. git branch  //假定如今所在的branch是branchA (targetBranch),並最好保證沒有未提交的修改,而且已經更新到最新

   3. git checkout branchB  //確保同一個workspace能在不一樣的branch直接切換,即保證 .git/config裏 [remote "origin"] 的內容是 fetch = +refs/heads/*:refs/remotes/origin/*

   4. git merge branchA //先把targetBranch的修改merge到sourceBranch上,這樣有衝突能夠在sourceBranch上先解決,保證以後再merge回targetBranch的時候容易處理,targetBranch再也不有衝突

   5. 解決conflicts若是merge的結果裏有顯示conflicts

   6. git commit  //解決衝突後先commit到branchB

   7. git checkout branchA  //切換到targetBranch

   8. git merge --no-ff branchB  //建議merge的時候老是用 --no-ff 選項

   9. git push origin branchA   //把sourceBranch的修改merge到targetBranch以後,push到遠程的targetBranch

相關文章
相關標籤/搜索