首页 > 其他分享 >git修改某些指定提交的履历信息

git修改某些指定提交的履历信息

时间:2024-09-26 10:00:50浏览次数:1  
标签:git rebase 履历 修改 master 提交

一,关于git rebase -i head~n的命令,可以修改某个提交的提交履历

1,git log 查看提交log,确认需要修改的commit
2,git rebase -i head~2(以修改最后的两次提交的履历为例)
3,进入git vim编辑页面,按键盘i进入编辑模式,将需要修改履历的两条提交的 “pick ”改为 “r” (此时不需要改履历信息)
4,按esc键,然后输入:“:wq”在回车
5,进入倒数第二条履历编辑画面(我的例子是要改最后两条),按键盘i进入编辑模式,修改提交的履历信息
6,按esc键,然后输入:“:wq”在回车,退出第二条履历编辑,进入第一条履历编辑
7,按键盘i进入编辑模式,修改提交的履历信息
8,按esc键,然后输入:“:wq”在回车,修改履历完毕,退出编辑模式
9,git push -f origin 分支名,此时新的履历信息覆盖了原有的2条履历信息

补充:关于git rebase -i commit id的命令,也可以修改某个提交的提交履历,会相当于这从这个id开始之后所有的提交都会被列出来
比如:git rebase -i bf08abd5 ,bf08abd5是往前数8次的提交commit id,相当于git rebase -i head~8

注意:
①在使用rebase -i修改履历提交到master分支时被拒绝提交,提示下面的信息,
! [remote rejected] master -> master (pre-receive hook declined)
因为master分支带有默认的Protected权限,所以不允许(实际原则上也禁止这么操作)

②非master分支可以使用rebase -i修改提交履历,但是履历修改提交后,gitlab上的commit id号会被修改成新的,
提MR被merge后再使用rebase -i修改提交履历,会导致commit id对不上,同一开发分支多人使用时也不要使用rebase -i修改提交履历

二,--amend修改提交的履历

--amend也可以修改提交的履历信息,但是只能修改最后一次提交的履历信息
--amend 实质会把本次修改将要的提交和前一次的提交合并到同一个提交里面

 

标签:git,rebase,履历,修改,master,提交
From: https://www.cnblogs.com/l-liu/p/18432868

相关文章

  • IDEA如何查看每一行代码的提交记录(人员,时间)
    前言我们在使用IDEA开发时,一般需要使用git来管理我们的代码,而且大家协同开发。 有时候,我们在开发的时候,经常需要看一下当前的代码时谁开发的,除了看类上面的作者外,更精细的方式是看每一行代码的提交记录。 那么,我们该怎么查看呢?如何查看首先,我们需要保证我们的代码是有git......
  • 03 git 码云面试题
    1.写出你常用的git命令。2.你们公司是怎么用git做开发的?1.在码云或GitHub等代码托管的网站创建自己仓库,创建完之后码云会给我一个仓库地址,如:https://gitee.com/old_boy_python_stack_21/190326032.git2.自己写代码.....3.将代码提交到远程仓库。-......
  • 工作中使用git的规范流程
    本文介绍企业Git版本控制的逻辑,提高程序代码管理的效率问题:1.开发管理乱2.代码冲突过多3.代码质量过低4.代码管理效率不高..只会用不会管理参考企业Git规范的必要性Git企业级使用规范-操作流程Git企业级使用规范-实际操作1.git管理流程参考2.......
  • 两阶段提交中的 redo log 和 binlog 关系
     MySQL的InnoDB存储引擎使用 两阶段提交 来协调 redolog 和 binlog 的写入顺序,确保事务的一致性。具体过程如下:准备阶段(PreparePhase):InnoDB将事务修改写入 redolog,但此时redolog处于 prepare 状态,表示事务的修改已经写入磁盘,但是还没有提交。同时,MySQL......
  • Git - 基本操作
    Git基本操作(本地库)很多小伙伴可能都听说过Git,那么Git到底是什么?为什么那么多人都在使用它?Git是一个开源的分布式版本控制系统,用于敏捷、高效地处理任何大中小项目,特别是对于团队协作开发起到了积极有效的推进作用。通俗地讲,Git就像我们玩RPG游戏时的存档系统,它可......
  • git: 报错: no submodule mapping found in .gitmodules for path/位于未检出的子模组
    一,问题的现象:1,安装laravel/ui这个第三方库后,它的文件不出现在未跟踪文件中,如下:liuhongdi@lhdpc:/web/api/vendor/laravel/ui$gitls-files./liuhongdi@lhdpc:/web/api/vendor/laravel/ui$gitls-files././liuhongdi@lhdpc:/web/api/vendor/laravel/ui$lsauth-backe......
  • ECE-GY 6183 Real-Time Digital Signal Processing
    Real-Time Digital Signal Processing LabECE-GY 6183 / ECE-UY 4163Fall 2024This course is an introductiontothe real-time implementationofdigital signal processing (DSP) algorithms, with an emphasis on audio signal processing an......
  • 如何恢复被删除的 GitLab 项目?
    GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。学习极狐GitLab的相关资料:极狐GitLab官网极狐GitLab官网文档极狐GitLab论坛极狐G......
  • Git 工作区、暂存区与修改全解析
    工作区和暂存区是Git中一个非常重要的概念,弄明白了他们,就弄明白了Git的很多操作到底干了什么。‍工作区(WorkingDirectory)工作区,就是一个目录,比如我的LearnGit​文件夹就是一个工作区:​我们平时更新版本什么的,都是在这里完成的,可以理解成是在这里工作的。‍‍版本库......
  • Git 的安装和配置
    Git是跨平台的,可以在Windows,Linux、Unix和Mac各几大平台上使用由于笔者主要是使用Windows,其他平台下安装Git的方法暂且不表(可参考廖雪峰老师的博客:安装Git)‍Windows安装Git从Git官网直接下载安装程序,安装时大部分选项是英文说明的,如果看不懂,那就不用看懂,默认安装......