yesn 发表于 2018-1-12 23:08:05

Git merge 不同的branch

  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里 的内容是 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
页: [1]
查看完整版本: Git merge 不同的branch