• [译]git rebase -i


    使用rebase -i会在终端出现一个交互页面. 在这个交互页面中我们可以对要rebase的commit做一定的修改. 

    用法

    git rebase -i <master>
    

    把当前的分支的commit放在<base>后面, -i会打开一个编辑器, 在这你可以为每一个commit输入一个命令, 这个命令决定了如何把单个的commit传输到new base. 还可以改变commit列表的顺序.

    讨论

    大多数开发者喜欢在merge一个分支到master的时候使用rebase -i打磨我们这个feature分支. 他给了我们机会合并一些commit, 删除一些commit, 对commit进行排序.

    例子

    # Start a new feature
    git checkout -b new-feature master
    # Edit files
    git commit -a -m "Start developing a feature"
    # Edit more files
    git commit -a -m "Fix something from the previous commit"
    
    # Add a commit directly to master
    git checkout master
    # Edit files
    git commit -a -m "Fix security hole"
    
    # Begin an interactive rebasing session
    git checkout new-feature
    git rebase -i master
    

    最后的命令会打开一个编辑器, 其中有两行命令.

    pick 32618c4 Start developing a feature
    pick 62eed47 Fix something from the previous commit
    

    在这你可以修改pick命令. 在这个例子中, 我们使用squash合并这两个commit:

    pick 32618c4 Start developing a feature
    squash 62eed47 Fix something from the previous commit
    

    保存关闭编辑器后rebase开始. 这是会打开一个新的编辑器让我们填写commit描述.整个过程可视化如下:

    注意了squash commit有一个新的ID号, 这表明他是一个全新的commit.

    最后使用fase -forward merge集成feature分支:

    git checkout master
    git merge new-feature
    

      

  • 相关阅读:
    nginx接收tcp请求转发server
    eclipse 配置github 提交代码
    eclipse安装JDK11
    java内存管理
    进程 线程 纤程 中断
    DCL单例为什么要加volatile
    如何清理history
    后置引用
    nc 工具使用
    ip_local_port_range 和 ip_local_reserved_ports
  • 原文地址:https://www.cnblogs.com/irocker/p/git-rebase-i.html
Copyright © 2020-2023  润新知