searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

git rebase合并多条commit记录

2023-08-02 04:02:04
47
0

1、查看所有的提交记录

git log

2、合并提交

git rebase -i + commitId(此处的commitId指要合并的多个commit的前一个commitId,也就是例子中的地基)

使用git rebase -i命令后,会进入git内置的vim界面,输入i键,进入编辑状态(键盘输入esc + :英文冒号 + wq,表示保存并退出此编辑)

① 把多个pick修改为一个,其余pick修改为s

② 去除多余的commit描述,在不需要的描述前加上#号,表示注释该描述

3、将修改push到远程仓库并强制更新

git push origin 分支名 -u -f

4、举例说明

以下列提交记录的操作为例,把“实现XXX功能”(5276ea2c)及“优化代码”(0f2a06b6)这两次commit合并成一个commit

  • git log 查询出以下内容(其中12dc7da4688918e88d1cb510805b5d8a55a1c2a5的commitId为地基)
commit 0f2a06b63ad037a9bc7898b60117301eeb7c0ea0 (HEAD -> feature-test-49146, origin/feature-test-49146)
Author: ff_g.liucy <ffliucy@chinatelecom.cn>
Date:   Tue Aug 1 09:18:17 2023 +0800

    优化代码

commit 5276ea2cd01fc0f300b22fb7e16044d2f3a6366e
Author: ff_g.liucy <ffliucy@chinatelecom.cn>
Date:   Tue Aug 1 09:16:59 2023 +0800

    实现XXX功能

commit 12dc7da4688918e88d1cb510805b5d8a55a1c2a5
Merge: 17843286 bf897675
Author: test
Date:   Mon Jul 31 15:19:16 2023 +0800
  • git rebase -i 12dc7da4688918e88d1cb510805b5d8a55a1c2a5
说明:① 输入i键,把“0f2a06b6 优化代码”前的pick修改为s;然后输入esc键+英文冒号+wq
pick 5276ea2c 实现XXX功能
s 0f2a06b6 优化代码

# Rebase 1bdc7da4..0f6a06b6 onto 1bdc7da4 (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
......
========================================================================================================
说明:② 输入i键,去除“优化代码”这个描述,在“优化代码”前加#号;然后输入esc键+英文冒号+wq
# This is a combination of 2 commits.
# This is the 1st commit message:

实现XXX功能

# This is the commit message #2:

# 优化代码

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date:      Tue Aug 1 09:16:59 2023 +0800

若出现错误,导致中途卡在Lcy@LAPTOP-J70UPAA2 MINGW64 /f/test (feature-test-49146|REBASE)状态,输入git rebase --abort即可退出

  • rebase成功后,再次输入git log,可以看到此时commit已合并,仅保留“实现XXX功能”(14ef2c48)
commit 14ef2c48d3480ed85bcfa8a0bbb034e75b2415b4 (HEAD -> feature-test-49146)
Author: ff_g.liucy <ffliucy@chinatelecom.cn>
Date:   Tue Aug 1 09:16:59 2023 +0800

    实现XXX功能

commit 12dc7da4688918e88d1cb510805b5d8a55a1c2a5
Merge: 17843286 bf897675
Author: test
  • git push origin feature-test-49146 -u -f(push到远程仓库)
0条评论
0 / 1000
刘财依
3文章数
1粉丝数
刘财依
3 文章 | 1 粉丝