Git (八):压缩commit提交记录

ProjectDaedalus

共 914字,需浏览 2分钟

 ·

2024-04-11 06:40

这里介绍如何合并commit提交记录f8b342fdb908d0ae4cd00865105fa5db.webpabstract.png 实践

对于下述提交记录,这里期望将最新的4次commit记录合并为一个

90b97fc739145dd9f70a154bb9b47882.webpfigure 1.png

使用git rebase命令的i选项启动交互式变基,选定包含HEAD(当前分支最新提交)在内的4次最新的提交。这将打开一个vim编辑器。其会列出相应的commit,同时每个commit前都有一个命令(默认为pick)

      
      git rebase -i HEAD~4

如果要将最新的4次commit记录合并为一个的话,我们需要将除了第一行commit外的所有commits命令从pick改为 s 或 squash。修改完commist前的命令后,保存并关闭vim编辑器

2cb931d36d3275111ebeb996b4da00cb.webpfigure 2.png

此时git会再次打开vim编辑器,提示编辑新的commit信息。具体地,对于不需要的commit信息在最前面添加#注释符号,同时添加新的注释信息。最后保存并关闭vim编辑器

4523c39e6e5956106403a9af7f5f5d28.webpfigure 3.png

现在,git会进行变基过程。如果变基过程中没有遇到冲突,就可以成功将多个commit压缩合并成一个新的commit了

f14c9353b87775a2e03048baf217a5a7.webpfigure 4.png

现在,就可以将合并的结果push到远程了

      
      git push origin <远程分支名> --force

但为了防止远程分支上已经存在其他人提交的代码,推荐使用 --force-with-lease 选项进行push

      
      git push origin <远程分支名> --force-with-lease

补充说明下,在修改commits命令时。还可以选择将第一行commit外的所有commits命令从pick改为 f 或 fixup。这样变基后会直接将第一行commit的提交信息作为压缩后新commit的信息,无需再次编辑指定

浏览 19
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报