• 【翻译】git 从一个分支复制一系列commit到另一个分支


    原文地址:Git: How to copy a range of commits from one branch to another?  作者:tobi

    有时候将一系列commit合并到另一个分支上是非常有用的。这篇文章介绍了如何使用git rebase来实现上边提到的需求。下面2个例子说明了不同的使用场景,这应该有助于你理解这个命令的参数。

    例子1:图中的P,Q,R是feature分支中的commit id,这3个commit需要合并到master分支上,应该会追加到M上。

    第一个命令git rebase --onto M O R复制P,Q,R到master分支上。在gitk上是看不到包含它们的可视化记录。这是因为没有任何分支指向这3次提交。通过第二个命令git rebase HEAD master更新master分支:将HEAD向后指向R(译者注:这块HEAD处于游离态)。

    例子2:跟第一个例子类似。主要专注于一下两点:1)你能选择任何commit节点作为合并一系列commit的根(第一个例子是M),在这里我选择节点L作为合并的根。2)跟例1一样,在完成合并操作后,你可以创建一个分支,HEAD为你合并的一列分支的最后commit节点(图中为R),从而可以让这些合并的commits可见。

    当你理解了这三个参数,你会发现这个命令在不同的场景下都是类似的。因此,记住以下:

    git rebase --onto argument1 argument2 argument3

    • argument1 对于合并操作的目标分支commit节点,它是argument2的前一次commit
    • argument2 合并分支开始的前一次提交,argument2不会合并到argument1上去
    • argument3 合并分支结束提交节点,

    :在数学上可以类似表示(argument2, argument3],前开后闭,本身不包括argument2

    参考资料

  • 相关阅读:
    日历(Calendar)模块
    关于Python3中函数:
    正则表达式全集
    python同时遍历两个list
    Python 类
    vs_code 快捷键
    Linux常用命令大全
    Linux基础命令sort
    Linux基础命令练习题答案7.10
    Linux基础命令练习题7.10
  • 原文地址:https://www.cnblogs.com/hanshuai/p/14042433.html
Copyright © 2020-2023  润新知