Git如何合并多次提交

 更新时间:2023年05月31日 09:14:27   作者:帅气的Lucky  
这篇文章主要介绍了Git合并多次提交问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Git合并多次提交

有时候需要合并几个提交历史记录为一个提交,该怎么办呢?可以使用 git rebase !

也可以使用 git reset --soft 或者 git reset --mixed 

将多次commit合并为一次commit,可以通过git rebase命令实现

查看历史,确定要合并的提交

git log  或者   git log --oneline 

注意:不要合并了其他人的提交,不要合并了其他人的提交,不要合并了其他人的提交

ATTENTION: Do not merge others' commit! Do not merge others' commit! Do not merge others' commit!

git rebase -i  *****

其中 ***** 为不需要合并的提交。其中,-i 的参数是不需要合并的 commit 的 hash 值。

也可以使用相对提交,例如我需要合并最近2次提交可以使用(倒数第三次之后的提交会合并,不合并第三次)

git rebase  -i  HEAD^^^

下面进入编辑页面,选择合并到哪个提交上

  • pick 的意思是要执行这个 commit
  • squash 的意识是这个 commit 会被合并到前一个 commit

编辑完保存退出

若无冲突或者冲突已 fix,则会出现一个 commit message 编辑页面,修改 commit message ,然后保存退出。Successfully表示操作成功。

中间可能会出现的情况

git 会压缩提交历史,若有冲突,需要进行修改,修改的时候保留最新的历史记录,修改完之后输入以下命令:

git add .
git rebase --continue

若想退出放弃此次压缩,执行命令:

git rebase --abort

同步到远程 git 仓库

输入:git push -f   或者  git push --force查看远程仓库效果,多次 commit 已被合并成一次 commit。

Git_合并多次提交记录

使用git rebase将多条提交记录合并成一条

应用场景

公司代码分支在master上,张三接到一个开发任务,需要在master上开发一个新功能,首先张三不能直接使用master分支进行开发,因为张三的开发过程没必要存在于公司主分支master上面,正确的做法是张三新建一个dev分支,张三git merge master获取到master分支上的最新代码,然后张三所有的开发都在这个dev分支上,开发完成后把dev分支上的所有过程打包成一条记录,再推到主分支上。

1、在dev分支上查看已经开发了6条记录了,我们需要把这6条记录合并起来 

2、git rebase -i db2c1c847c80ca4943ea04a49ccdf2e95b307b1a

这个是git的默认编辑器(vim)首先点击i进入编辑模式(最下面出现-- INSERT --)

把这6条记录的其中五条都屏蔽掉,只保留一个

然后按esc键退出编辑模式,按shift+;进入命令输入模式,输入wq保存退出

3、合并之后的记录使用的commit,同样也是屏蔽5个保留一个

4、当出现Successfully rebased and updated refs/heads/dev.表示合并成功了

5、回到master分支,把dev分支merge到主分支就好了,然后git log检查一下看到就剩一条记录了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • VS Code使用Git可视化管理源代码详细教程(推荐)

    VS Code使用Git可视化管理源代码详细教程(推荐)

    这篇文章主要介绍了VS Code使用Git可视化管理源代码详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • idea2020.1 常用设置图文详解

    idea2020.1 常用设置图文详解

    这篇文章主要介绍了idea2020.1 常用设置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • 如何设计一个几十万在线用户弹幕系统需求方案

    如何设计一个几十万在线用户弹幕系统需求方案

    这篇文章主要介绍了为大家如何设计一个几十万在线用户弹幕系统的需求实现方案详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
    2023-05-05
  • git rebase 成功之后撤销的操作方法

    git rebase 成功之后撤销的操作方法

    这篇文章主要介绍了git rebase 成功之后如何撤销,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Git多人协同开发紧急修复线上bug操作指南

    Git多人协同开发紧急修复线上bug操作指南

    这篇文章主要为大家介绍了Git多人协同开发紧急修复线上bug操作指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 使用IDEA回滚某次提交的代码步骤

    使用IDEA回滚某次提交的代码步骤

    这篇文章主要介绍了使用IDEA回滚某次提交的代码步骤,在平时的开发中,不小心commit了错误的代码怎么办,就需要用到回滚了,需要的朋友可以参考下
    2023-03-03
  • Vscode 基础使用教程大全

    Vscode 基础使用教程大全

    本文给大家汇总介绍了一些vscode开始使用的过程中需要用到的基础的操作教程,非常简单实用,希望对大家熟练掌握vscode能够有所帮助
    2020-01-01
  • 在kali上安装AWVS的图文教程

    在kali上安装AWVS的图文教程

    这篇文章主要介绍了在kali上安装破解AWVS的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 三招两式 解决图片盗链无法查看问题

    三招两式 解决图片盗链无法查看问题

    有些粗心大意的人转贴时,简单地把图片复制了过来。可如果该网站的图片设置为防止外部链接,我们遇到转载的好帖,又找不到原出处,难道只有哀叹的份么?
    2011-06-06
  • 变量、函数、类的命名规则

    变量、函数、类的命名规则

    在阅读clean code书籍的时候,让我体会很多,因此我也用文字记录下这些有意义的知识。我认为这本书读十遍都不为过,下面我讲解一下自己的关于变量、函数、类的命名规则笔记。
    2011-08-08

最新评论