• Git 小课堂 004


    rebase——变基,就是这个可能会把事情搞得一团糟的操作。

    对于变基,我只能说,需要一个配合默契的团队,你们心灵想通,互相了解,然后你们会做出非常漂亮的事情。对于使用变基且几乎不会出问题的团队,我一般都是由衷的赞叹和羡慕,因为真的是一群非常好的小伙伴,这样的同事在一起工作应该是非常开心的。
    某次提交 commit id 为 master,基于此,有两个分支 master'(在 master 基础上有新的提交进行了更改) 和 develop,我要把 develop 的修改放到 master' 的后面,我需要做的是(git rebase master develop; git merge develop):

    git checkout develop
    git rebase master'
    git checkout master'
    git merge develop
    

    其中 rebase 的操作实际的过程是先找到 master' 和 develop 共同的基底,再将 develop 的每次修改暂存下来,然后将当前分支指向目标基底,再将暂存依次应用到目标基底,依次应用暂存修改。这样提交记录就是一条线了,尤其适用于向一些他人维护的项目提交 pr。rebase 还有更方便的用法,是 rebase --onto,这个就厉害了,可以让你的提交记录灵活更改,你会用吗?

    都是合并代码,但 rebase or merge,这是问题,我不想加入争辩,各有道理,我们需要做的更多是把两个都会用,在不同的时候你自然会做出正确的选择。对了,rebase 还可以做一些 merge 做不到的事情。提一个小问题吧:
    某一个项目的提交记录是:A->B->C->D->E,发现第三次修改 C应该被抛弃(A->B->D->E),文如何用 rebase 达到目的?答案请到 git rebase --help 中自行寻找。

  • 相关阅读:
    BZOJ3509: [CodeChef] COUNTARI
    BZOJ3790: 神奇项链
    BZOJ3527: [Zjoi2014]力
    BZOJ2194: 快速傅立叶之二
    解题:BJOI 2006 狼抓兔子
    解题:SDOI 2017 数字表格
    解题:TJOI 2015 弦论
    解题:NOI 2016 优秀的拆分
    解题:AHOI2017/HNOI2017 礼物
    解题:洛谷2093 JZPFAR
  • 原文地址:https://www.cnblogs.com/renyuzhuo/p/12325712.html
Copyright © 2020-2023  润新知