Git rebase测试

git rebase测试

  1. 初始化仓库

    vim 1.c
    git init .
    git add 1.c
    git commit -m "add 1.c" .
    

    此时为master分支。

  2. 尝试修改1.c文件,并提交:

    git commit -m "modify 1.c" .
    

    看git日志:

    commit c2e038447c278fe21bb3f6eb66710269a78c3eeb
    Author: adam.zheng@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:28:38 2023 +0800
    
        modify 1.c
    
    commit a90687872319df39f37cb55bf8a06d7d565cfdd7
    Author: adam.zheng@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:27:39 2023 +0800
    
        add 1.c
    
  3. 切换到新分支dev:

    git checkout -b dev
    

    修改并提交:

    git commit -m "modify on dev" .
    
  4. 现在对比两个分支的提交:

    master

    commit 0c65a1cbc57468b823d5b561f123836ae57169ef
    Author: adam.ma@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:32:12 2023 +0800
    
        modify on master
    
     1.c | 1 +
     1 file changed, 1 insertion(+)
    
    commit c2e038447c278fe21bb3f6eb66710269a78c3eeb
    Author: adam.ma@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:28:38 2023 +0800
    
        modify 1.c
    
     1.c | 1 +
     1 file changed, 1 insertion(+)
    
    commit a90687872319df39f37cb55bf8a06d7d565cfdd7
    Author: adam.ma@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:27:39 2023 +0800
    
        add 1.c
    
     1.c | 25 +++++++++++++++++++++++++
     1 file changed, 25 insertions(+)
    

    dev:

    commit 0ba2902ace62af877ea7d63a170bd8b76bdcf684
    Author: adam.ma@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:29:43 2023 +0800
    
        modify on dev
    
     1.c | 1 +
     1 file changed, 1 insertion(+)
    
    commit c2e038447c278fe21bb3f6eb66710269a78c3eeb
    Author: adam.ma@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:28:38 2023 +0800
    
        modify 1.c
    
     1.c | 1 +
     1 file changed, 1 insertion(+)
    
    commit a90687872319df39f37cb55bf8a06d7d565cfdd7
    Author: adam.ma@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:27:39 2023 +0800
    
        add 1.c
    
     1.c | 25 +++++++++++++++++++++++++
     1 file changed, 25 insertions(+)
    
  5. rebase

    git rebase master dev
    

    对比dev分支上的commit的日志:

    commit 0665b11fb858552795cbab9eecb43147ad095927
    Author: adam.ma@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:29:43 2023 +0800
    
        modify on dev
    
     1.c | 1 +
     1 file changed, 1 insertion(+)
    
    commit 0c65a1cbc57468b823d5b561f123836ae57169ef
    Author: adam.ma@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:32:12 2023 +0800
    
        modify on master
    
     1.c | 1 +
     1 file changed, 1 insertion(+)
    
    commit c2e038447c278fe21bb3f6eb66710269a78c3eeb
    Author: adam.ma@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:28:38 2023 +0800
    
        modify 1.c
    
     1.c | 1 +
     1 file changed, 1 insertion(+)
    
    commit a90687872319df39f37cb55bf8a06d7d565cfdd7
    Author: adam.ma@gmail.com <adam.ma@gmail.com>
    Date:   Mon Nov 13 09:27:39 2023 +0800
    
        add 1.c
    
     1.c | 25 +++++++++++++++++++++++++
     1 file changed, 25 insertions(+)
    
    

    可以发现,就是在master分支的基础上,重新播放了下dev分支上的commit。

    rebase: play that branch(dev) on this branch(master),。
    当然,可能会遇到merge conflict的,一般的处理方法为:

  • 修改conflict的文件
  • git add xxxx
  • git rebase --continue
    如果不想处理,可以git rebase --abort,退出完整的rebase过程;或者git rebase --skip,跳过rebase这个commit
posted @   付时凡  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示