• [译]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
    

      

  • 相关阅读:
    数组中的趣味题二
    数组中的趣味题一
    归并排序
    堆内存与栈内存
    c++中的继承和组合
    直接插入排序
    NYOJ 1067 Compress String(区间dp)
    C++ Primer 学习笔记与思考_7 void和void*指针的使用方法
    ucgui界面设计演示样例2
    手机无法连接电脑的手机助手
  • 原文地址:https://www.cnblogs.com/irocker/p/git-rebase-i.html
Copyright © 2020-2023  润新知