git rebase 合并

/*
 * git rebase
 */

    git rebase 是另一种将更改从一个分支合并到另一个分支的方法。

    与git merge不同,rebase 通过重新应用一个分支上的更改到另一个分支的末端,来创建一个线性的提交历史。
    这样做的好处是可以得到一个更干净、更直观的项目历史,但它会改变提交的历史。

/*
 * 使用git rebase合并到主分支的步骤
 */

    假设你想将 ac-dev上 的更改合并到 master 分支。

    1.切换到特性分支:
        首先,确保你在 ac-dev 上。

        git checkout ac-dev

    2.执行rebase操作:
        使用git rebase 命令将 ac-dev 上的更改重新基于 master 分支的最新提交。

        git rebase master
        
        这会将ac-dev上的提交解除(unapply),
        更新 ac-dev 的基点到 master 分支的最新提交,然后重新应用之前的更改。

    3.解决可能出现的冲突:
        如果在rebase过程中出现冲突,Git会停止并让你解决冲突。
        解决冲突后,使用git add命令标记冲突为已解决,然后通过 git rebase --continue 继续rebase操作。
        如果你想中止rebase操作,可以使用 git rebase --abort。

    4.切换到主分支:
        一旦rebase完成,切换回master分支。

        git checkout master

    5.将变更合并到主分支:
        因为rebase操作已经将ac-dev的更改重新应用在了master分支的最新提交之上,
        现在可以安全地使用git merge命令进行快进合并。

        git merge ac-dev
        
        在这个点上,由于 ac-dev 已经被rebase到master的最新提交上,merge 操作应该是一个快进(fast-forward)合并。

    /* 具体命令操作2 */

     首先使用 git checkout -b ac-dev, 新建并切换到 ac-dev 分支上,并且使用 git commit 命令进行一次提交生成C2节点。
     
     然后使用 git checkout master 命令切换到master分支上,并且使用 git commit 命令进行一次提交生成C3节点。
     
     然后再使用 git checkout ac-dev 命令切回到 ac-dev 分支上。
     
     最后在 ac-dev 分支上执行 git rebase master 命令,经其父类变成 master。
     执行变基后,C2会和C3节点的内容进行合并生成新的节点C2`,
     而 ac-dev 分支的指针也会从C2节点移动到C2`上,移动后 ac-dev 之前的分支就会被废弃掉,
     取而代之的是从 master 延续下来的新分支。
     
/*
 * 注意事项
 */

    不要在公共分支上使用rebase:rebase会改变历史,这在私有分支上是安全的,但如果在公共分支上使用,
    可能会导致团队成员之间的混乱和问题。只在你确定没有其他人正在工作的分支上使用rebase。
    
    理解rebase的影响:在使用rebase之前,确保你理解它如何改变Git历史的细节。错误使用rebase可能会导致更复杂的问题。
    
    通过使用git rebase,你可以保持项目历史的清洁和线性,但要谨慎使用,以避免潜在的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值