• 【Git】rebase 用法小结(转)


    1.合并多个commit为一个完整commit

      git rebase -i  [startpoint]  [endpoint]

    其中-i的意思是--interactive,即弹出交互式的界面让用户编辑完成合并操作,[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit(注:该区间指定的是一个前开后闭的区间)。
    在查看到了log日志后,我们运行以下命令:
    git rebase -i 36224db

    git rebase -i HEAD~3 

    在交互界面git 为我们提供了以下几个命令:
    • pick:保留该commit(缩写:p)
    • reword:保留该commit,但我需要修改该commit的注释(缩写:r)
    • edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
    • squash:将该commit和前一个commit合并(缩写:s)
    • fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
    • exec:执行shell命令(缩写:x)
    • drop:我要丢弃该commit(缩写:d)

    2.将某一段commit粘贴到另一个分支上

    (如果只是复制某一两个提交到其他分支,建议使用更简单的命令:git cherry-pick
    git rebase [startpoint] [endpoint] --onto [branchName]
    其中,[startpoint] [endpoint]仍然和上一个命令一样指定了一个编辑区间(前开后闭),--onto的意思是要将该指定的提交复制到哪个分支上。
    所以,在找到C(90bc0045b,较早)和E(5de0da9f2,较新)的提交id后,我们运行以下命令:
    例如:    git  rebase   90bc0045b^   5de0da9f2   --onto master
    参考:https://www.jianshu.com/p/4a8f4af4e803
  • 相关阅读:
    取石子(斐波那契博弈)
    Kindergarten(网络流解法)
    最大团的一些定理
    Escape(多记一个方向状态的BFS)迷宫逃脱
    网络流的一些定理
    线段树维护动态连续子段HDU1540
    最大流Dinic(模板)
    MCMF最大流最小割(模板)Dijkstra负权优化
    Exchanging Gifts--2019CCPC哈尔滨 E题
    A<=B的前提下全排列A使答案尽量大
  • 原文地址:https://www.cnblogs.com/i-shu/p/13401677.html
Copyright © 2020-2023  润新知