使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法

这篇具有很好参考价值的文章主要介绍了使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求场景一 :
对某个小的功能点进行多次反复的修改提交,且已经提交到远程,导致commit记录过多,太过于杂乱无章,想要精简合并一些提交记录。

场景还原:
比如下图4个git commit记录,log1-log4,需要将他们合并成一个提交记录

使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法
解决方案:

  1. 要处理的是log1-log4 这四条commit记录。
  2. 选中log1之前一条commit的commit id,也就是图中最下面这条。e65b97e332c0683631c334b870e0ceb062163815
  3. 使用 git rebase 进入vim编辑器
 git rebase -i e65b97e332c0683631c334b870e0ceb062163815

使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法

4.进入vim编辑器之后,单击 i 按键 进入编辑模式,这是最下方会出现-- INSERT --标识表示我们进入了编辑模式。
使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法
5. Commands 可以看到我们可以使用的命令以及缩写以及每个命令的缩写。这次要使用的命令的是pick和squash。
6.这时候最上方4个commit log1-log4的前面都是pick,移动光标将log2-log4前面的pick改为s(或者squash)
使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法
7. 编辑完毕之后,点击esc 然后按住 shift+";“双引号, 最底下出现冒号, 然后输入wq 回车 保存。
8. 这时候就能看到 我们之前提交的4个 commit 的 信息, 你可以选择在不要的message前面加个#号 表示忽略掉这条信息,一般来说去掉几个不要的,只保留一个进行编辑或者保持原始状态。比如 我在log1 3 4 前面加个#号表示忽略,对log2进行编辑 。(这里依然要点击i 进入编辑模式。)
使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法
9.编辑完之后的效果如下,我想要提交的合并信息就是"meger log1-4”,
重复上面的步骤 保存退出。esc=>:wq

使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法
10.如果成功会有一行提示

Successfully rebased and updated refs/heads/feature/git-test.

如果失败 可以使用 git rebase --continue 进入vim编辑器重新操作。
如果想要放弃这次编辑 可以使用git rebase --abort 命令中止本次操作。
11. 最后使用命令 git push -f 强制推送,大功告成。使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法

需求场景二 :
对于已有一个提交记录push到远程, 但你本地目前有一点小的修改,想再推送到远程,但不想再生成一个提交记录,使得commit记录过多,且不想更改已有的commit message。
比如下图 有一个提交 my first commit commitId是7b3b6ada 时间是 16:47
使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法
解决方案 :
1.git add . 将要更改的代码提交。
2. 这时候 可以使用 git amend进行合并代码

git  commit --amend --no-edit

使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法
3.最后强推到远程文章来源地址https://www.toymoban.com/news/detail-478863.html

git push -f
  1. 查看效果 git log。我们可以发现 提交时间和message没变,但是 commitId 从7b3b6ada 变成了3ac2a2d。
    使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法
    5.⚠️注意 这个方法只适合只有一个开发者 或者自己单独一个开发分支的时候使用, 否则有可能会覆盖别人的代码,慎用 慎用。

到了这里,关于使用Git rebase合并多条提交记录commit。以及使用 git commit amend本地提交直接合并到远程已有commit的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git 合并多次提交记录(commit)

    在开发过程中,对于一个完整的功能可能会先后进行多次提交。这种及提交方式不利于与代码走查时或者后期回顾功能点影响范围。为此,应该将多次提交合并为一次提交。 例如当前提交如下: 若我想合并前3次提交即从91bfbb8f599fa0129f28f9c4fd85e9feeca335be到7dbba7b7b46aa47bb57d109cd6

    2024年02月05日
    浏览(29)
  • git:使用git rebase合并多次commit为一个

    git log:找到需要合并的最早 commit 的父级 git rebase -i 73a5cd8597 除第一个 pick 外,将其它改成 s,改完后保存退出 保存完后弹出 commit message 合并提示,根据这次合并的目的,重写commit message,改完后保存 修改为: 做完上述操作后,自动合并多个 commit 合并成为一个并提交,并生

    2024年01月25日
    浏览(28)
  • git——合并分支commit记录 squash提交

         在公司和别人协同合作时,作为开发需要向架构或者负责人提交mr以合并代码,为了提高review效率,有些负责人会要求一个mr仅保留一条commit记录方便代码比对review的观看,但是开发常常是很多需求和bug混合着写,不可能每个分支都暂存一下去其他分支查看吧,因此总会

    2024年02月14日
    浏览(28)
  • 【git 使用】使用 git rebase -i 修改任意的提交信息/合并多个提交

    修改最近一次的提交信息的方法有很多,可以参考这篇文章,但是对于之前的提交信息进行修改只能使用 rebase。 假设我们想修改下面这个提交信息,想把【登录】改成【退出登录】步骤如下 运行 git rebase -i head~3 打开了一个文本编辑器 -i  【interactive】参数表示进行交互式

    2024年02月21日
    浏览(21)
  • Git代码合并之使用 rebase 整理提交历史

    ​以面试题为目标来进行学习,不定期推出前端高频面试题及其解析,题无简难,重在积累,欢迎wx关注 西西星球 ! Git 中整合来自不同分支的修改有两种方式: git merge 和 git rebase 。本文主要介绍 rebase 的3种使用场景: 场景1: 使用 rebase 合并分支–整合分叉的提交历史 使用

    2023年04月15日
    浏览(20)
  • Git 使用 rebase 修改历史提交记录

    运行以下这条命令之后,它会打开一个vim编辑器,我们就可以修改上一次commit时输入的提交信息。 接下来你要是想修改描述信息的话,直接键入: i ,此时进入了输入模式。 可用键盘上下键转到描述所在的那一行,然后进行修改。 修改完成后,按下 Esc  键退出编辑模式,在

    2024年02月02日
    浏览(31)
  • git rebase 合并提交

    git log --oneline 查看当前提交记录 git rebase -i HEAD~2 选择最后提交的2条记录进行合并 进入编辑界面,将c865404的 pick 改为 f , 表示向前合并也就是向cc5a54合并 编辑完之后 :wq 保存并退出 git rebase --continue git push --force origin feature/v1.2 推送到仓库 git rebase --abort 取消变基

    2024年02月16日
    浏览(19)
  • git rebase 合并多个提交

    开发过程中,本地通常会有无数次 commit ,可以合并相同功能的多个 commit,以保持历史的简洁。 命令使用 说明: -i(–interactive):弹出交互式的界面进行编辑合并 [commitid]:要合并多个版本之前的版本号,注意:[commitid] 本身不参与合并 例如,如下例子中你想合并前 5 个

    2024年02月07日
    浏览(21)
  • git rebase 合并提交与避免分叉合并

    本文让你熟练使用 rebase,学会以下两种操作,从此拒绝杂乱无章的 git 提交。 你可能出现过对同一处代码进行多次处理的场景。这会导致如下提交记录: 其实,中间的对 b 的3次提交完全可以合并成一次 commit,这个时候 rebase 就很有用了。 step1. 找到想要合并的 commit, 使用 re

    2024年02月15日
    浏览(25)
  • 【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 您的点赞、关注、收藏、评论,是对我最大

    2024年04月22日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包