代码编织梦想

一、背景

       使用git开发过程中,我们可能遇到提交多个commit的情况,如下图所示,但当做测试的时候察觉某次commit有bug,此时又不想新提一个commit来解决这个问题,这时候该怎么办?

public class Test {
    public void test(){
        System.out.println("A");
        System.out.println("B");
        System.out.println("C");
        System.out.println("D");
    }
}
提交记录:A->B(存在bug需要修改)->C->D(存在bug需要修改)

 二、解决方式

git log 查看历史提交,可以看到A、B、C、D的提交记录

2.1.最近的一次提交D存在问题

  ①修改问题代码:

public class Test {
    public void test(){
        System.out.println("A");
        System.out.println("B");
        System.out.println("C");
        System.out.println("D(修复D的Bug)");
    }
}

 ②使用命令:

  • git add .
  • git commit --amend

       此时进入vim编辑器,如左图所示;输入"i"进行修改,"esc"键退出修改,修改完输入":wq"进行保存,如右图所示:

       此时可以使用git log查看修改:

2.2.中间的提交B存在问题

①使用git rebase -i HEAD~n或者git rebase -i 7位的head头^

  • it rebase -i HEAD~3

进入左图的vim编辑器,输入"i"进行修改,将要修改的commit记录的pick修改成"e"或者"edit","esc"键退出修改,":wq"保存修改,如右图:

 ②修改问题代码

public class Test {
    public void test(){
        System.out.println("A");
        System.out.println("B(修复B的Bug)");
    }
}

③使用命令

  • git add .
  • git commit --amend

此时进入了vim编辑器,输入"i"进行修改,"esc"键退出修改,修改完输入":wq"进行保存,如下图所示。

 ④git rebase --continue

此时如果有冲突, 需要先解决冲突:

  • 编辑冲突文件, 解决冲突
  • git add .
  • git rebase --continue

      此时进入左图的vim编辑器,直接输入":wq"即可,如右图:

      此时显示成功变基并更新如左图示,代码更新如右图示:

此时使用git log查看历史记录如下图所示: 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jiaoxie7034/article/details/127154291

使用 git rebase 合并历史提交和修改记录 Commit Message-爱代码爱编程

使用 Git 做版本控制,毋庸置疑非常方便,可随心所欲地修改代码。提交代码是开发人员每天都在做的事情,清爽的提交记录让人爽心悦目。在有的场景之下,开发会产生一些琐碎的提交记录,譬如调试 CI 工具的提交,零星修改 bug 的提交,这些提交记录理应属于一条记录,这种情况之下就可以通过 git rebase 合并历史提交。 合并历史提交 以前我常用 g

shell获取git最近一次提交信息_git如何修改历史提交commit记录-爱代码爱编程

git如何修改历史提交commit记录?可以分为以下几种情况。 1、修改最后一次提交记录 $ git commit –amend 进入命令模式,按 i 进入编辑模式,修改好commit信息后按Esc健退出编辑模式,然后:wq保存编辑的信息。最后git push到远程仓库。 2、修改最近第N次记录 rebase到需要修改的注释,这边以2为例

git commit 后,提交记录消失不见-爱代码爱编程

今天忙碌了一上午,改了十几二十页的 UI样式,提交后竟然突然不见了,还好经过百度现在已解决。下面是解决办法,可以进行参考。 git commit 后,提交记录会消失不见的原因可能是: git只git commit了,没有push到远程分支,切换到其他分支时丢失。而且看不到提交记录,和找不到原来的分支。那应该怎么样找回来呢? 1. 找到你commit后

git 修改历史提交的信息 commit message-爱代码爱编程

因为某次提交的commit message不规范,导致git push的时候,提示远程提交失败 1、我们可以根据git log查看是哪一次的修改导致的,如果是最新一次的提交导致,其他同事也没有push过,那我们只需要rebase最近一次的提交就可以了,但是如果是之前历史的提交导致的,并且同事也提交push过多次,这时候就需要你一步一步的rebase con

git删除相关历史提交记录,相关文件保持当前状态-爱代码爱编程

      git删除相关历史提交记录,相关文件保持当前状态 引言   新年新气象,趁着现在新的一年开始项目的事情还不是非常繁忙的时候,多整点下酒菜。这不实战类型的博客记录又开始了!当然实战类型的博客,肯定是有相关的实际需求才会诞生的,这里我们来简单复盘一下实际需求的诞生和由来! 场景一: 原来我们有一个私有的仓库不对外开放,当开发到一定程度的

git删除远程提交记录——git revert commitId-爱代码爱编程

git删除远程提交记录——git revert commitId 场景 开发过程中,如果把本地的某一个commit推送到远端后,希望把远端的该条记录删除。 git revert 需要删除本地commit,并同步到服务器,使用git revert可以删除某一次提交,并为本次删除生成一个新的提交。 也就是说不是把之前的提交记录抹去,在提交记录中还是能

Git 修改历史 commit 提交信息-爱代码爱编程

修改最近一条提交的消息 git commit --amend 修改多条提交信息 查看提交记录git log 查看提交记录,可以看到commit 后面的 commitId 选择要修改的条数// 使用 commitId 方式 git rebase -i 9217a88c7fad0917b83d4abaeac127197f7c7a7d // -

怎么使用git远程删除某个历史提交记录_golang.fmt的博客-爱代码爱编程

这篇文章主要介绍“怎么使用Git远程删除某个历史提交记录”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Git远程删除某个历史提交记录”文章能帮助大家解决问题。 引言 在开发中经常会遇到在本地测试的代码或者隐私信息,一不小心提交到了远程仓库,即便立即删除了再提交,但是上次的提交记录在远程依旧可以查看。 特别

git 提交错了不用慌,git commit --amend 修改git提交记录_china-quanda的博客-爱代码爱编程

实际工作场景中 可能存在某次提交代码的过程中 某个文件出错了需要重新 提交这个时候 git commit --amend 就派上用场了 git log之后,可以看到你之前提交过的git历史: 接下来,在bash里输入wq退出log状态,执行: git commit --amend 这时bash里会出现以下内容: 其中,second commit 是

git,gitee,github使用总结(内含命令行详细操作)_etceriksen的博客-爱代码爱编程

1.各个区域的关系 (1) git add命令会先把代码提交到暂存区进行存储 (2) git commit会把代码从暂存区提交到本地库 此时代码依旧在本地 (3) 无论是提交到暂存区还是工作区 ,代码都是没有历史版本记录的。只有提交到本地库之后 代码才会有历史版本修改的记录。 2.Git常用命令 进行一系列的操作命令 按照顺序从上往下 (1