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 选项同步
7. git 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