zoukankan      html  css  js  c++  java
  • Git merge 不同的branch

    Git的优势是可以创建不同的branch,然后在每个branch上开发。那么问题是:如果不同的branch之间需要做同步,比如sourceBranch上做的修改也需要同步到targetBranch,改怎么做?

    A). 如果一个branchA (targetBranch)是有远程Git server管理的,另一个branchB (sourceBranch)是自己本地的,即把sourceBranch的修改merge到targetBranch上:

       1. cd <your workspace>

       2. git branch  //假定现在所在的branch是targetBranch,并最好保证没有未提交的修改,并且已经更新到最新

       3. git checkout -b branchB  //创建一个本地的sourceBranch并切换到sourceBranch

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

       5. git checkout branchA  //切换回targetBranch

       6. git merge --no-ff branchB  //把sourceBranch的修改merge到targetBranch。注意:建议merge的时候总是用 --no-ff 选项

       7git status  //保证现在workspace是干净的

       8. git push origin branchA //push到远程,如果远程有新的修改,先做一下git pull

    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

        

  • 相关阅读:
    14款经典的MySQL客户端软件
    淘宝、百度软件工程师们小调皮,各种霸气外漏
    使用Navicat for Oracle工具连接oracle出错:ORA-12737
    解析xlsx与xls--使用2012poi.jar
    LUOGU P4163 [SCOI2007]排列
    LUOGU P1337 [JSOI2004]平衡点 / 吊打XXX(模拟退火)
    LUOGU P1438 无聊的数列 (差分+线段树)
    LUOGU P1967 货车运输(最大生成树+树剖+线段树)
    LUOGU P3382 【模板】三分法 (三分)
    LUOGU P4027 [NOI2007]货币兑换 (斜率优化+CDQ分治)
  • 原文地址:https://www.cnblogs.com/forwill/p/6524185.html
Copyright © 2011-2022 走看看