Git提交代码错了吃后悔药的几种常用办法(场景分析)

1. 前言

写代码都会犯错误,不小心提交了一个错误我该怎么办?提交的描述信息我该怎么办?如果你也遇到这个问题,那么今天胖哥分享的这篇文章将非常适合你。

2. Commit 错了怎么办

放心都是有后悔药吃的,我们来看看。

场景一

假如你git commit了一堆代码,但是你发现本次Commit的描述信息有点随意,你可以这样:

git commit --amend -m“新的提交消息”

场景二

你本来打算Commit五个文件,但是由于疏忽你Commit了四个。当然你可以再Commit一次来进行弥补这个失误。但是多了一次Commit,按道理它们应该在一次Commit中。git commit --amend也能帮你解决这个问题:

git add 忘记提交的文件
git commit --amend --no-edit

场景三

有些项目比较严格,对提交者的信息(author)有要求。如果你Commit的作者不规范,也可以通过git commit --amend来解决:

git commit --amend --author“felorddax@felord.cn”

尽量确保这些错误在你本地提交时修复,推送到远程时使用amend命令将会使得代码历史变得混乱。另外git commit -am可不是git commit --amend的简写。

场景四

提交错了想撤回本次提交,无论是撤回远程的还是本地的,你可以使用git reset搞定,如下面这个例子:

git log
# 最新的
commit e49850be48f25d58b977b778d59c48a41e482bb4 (HEAD -> master)
Author: felord.cn <dax@felord.cn>
Date: Sun Nov 1 23:39:33 2020 +0800

 'readme'
# 次新的
commit 8e7089f62ad8588f5710f23d6a8ce1158490032b (origin/master, origin/HEAD)
Author: felord.cn <dax@felord.cn>
Date: Sun Nov 1 22:06:21 2020 +0800

通过git log我们查询获得了最新的两次提交,但是最新的提交e49850be48f25d58b977b778d59c48a41e482bb4 我们想撤回,也就是把最新的提交移动到第二个上面。我们只需要执行 git reset --soft 目标提交commitId,上述例子中的commitId=8e7089f62ad8588f5710f23d6a8ce1158490032b

git reset有四种模式 softmixedhardkeep,说明如下:

借用IDEA的说明

git revert 也能实现,区别在于revert会产生一次Commit,需要填写提交信息。

场景五

代码已经推送到远程服务器了,我想撤回某个文件,你可以这么操作:

# 查看文件历史版本
git log <filename>
# 回滚到指定commitId
git checkout <commitId> <filename>
# 提交被修改的文件
git commit -m '回滚特定文件的变动'
# 推送
git pus

3. 总结

我经常用的也就这些了,但是吃后悔药的时候一定要小心,最好拉一个新分支在新分支上试试,不要强吃后悔药,不然你会后悔的。目前像 IDEA 都是可视化操作你可以不用命令操作,不过胖哥个人觉得这些命令还是要熟悉的。

到此这篇关于Git提交代码错了吃后悔药的几种常用办法(场景分析)的文章就介绍到这了,更多相关Git提交代码错误内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详谈git 提交代码步骤,干货

    利用命令行提交代码步骤 提交代码之前,需先从服务器上面拉取代码,以防覆盖别人代码. 1:拉取服务器代码 git pull 2:查看当前工作目录树的工作修改状态 git status 状态: 1:Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged. 2:Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 3:deleted: 文件已删除,本地删除,服务器上还没有删除. 4:renamed: 3

  • idea git未提交代码文件名字变色(图解)

    ps:idea git 目录颜色 配置完毕后,效果如下: 总结 到此这篇关于idea git未提交代码文件名字变色的文章就介绍到这了,更多相关idea git变色内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • IDEA中项目集成git提交代码的详细步骤

    简介:在团队协作开发的过程中,好的代码管理能更加有效的使日常开发的过程中对各个开发人员提高开发速度.下面将详细介绍在IDEA中使用git提交代码的过程: 一:pull代码 在提交代码之前,我们必须先对代码就行更新操作,这一步非常重要,如果不进行更新代码操作,当有其他小伙伴有更改的内容已经提交到代码仓库但是我们本地缺没有更新的话,就会造成我们提交的代码跟别人已提交过的代码产生冲突(使用git解决冲突会比较麻烦,在这里就不进行讲解了,后期会单独更新).即使我们解决了冲突,也可能会冲掉别人的代码,造成

  • 利用git提交代码的方法步骤

    一.首先需要下载git 查看电脑是否安装git,打开终端,输入git,回车如果输出如下,则代表已安装了git 如果未安装,则会输出: 按照提示输入:sudo apt-get install git即可安装!!或者到此处下载:git下载,pkg包下载完成,双击安装. 输入命令:git --version 可查看当前git版本 二.安装后需要一些配置 配置用户名和邮箱: $ git config --global user.name "Your Name" $ git config --g

  • Git提交代码错了吃后悔药的几种常用办法(场景分析)

    1. 前言 写代码都会犯错误,不小心提交了一个错误我该怎么办?提交的描述信息我该怎么办?如果你也遇到这个问题,那么今天胖哥分享的这篇文章将非常适合你. 2. Commit 错了怎么办 放心都是有后悔药吃的,我们来看看. 场景一 假如你git commit了一堆代码,但是你发现本次Commit的描述信息有点随意,你可以这样: git commit --amend -m"新的提交消息" 场景二 你本来打算Commit五个文件,但是由于疏忽你Commit了四个.当然你可以再Commit一次来

  • VS2022 Git提交代码的实现

    目录 第一种方法 第二种方法 第三种方法 第一种方法 在fork和pull request后,克隆对方的源代码到一个新文件夹,将所有项目文件复制到用VS2022创建的新项目工程中(里面也包含了git文件夹,这个最重要),打开这个项目工程后,可在右侧看到如下图的工具栏. 这时候就可以按照需求修改代码,通过图形界面来提交,这里面的操作就可以自己摸索. 第二种方法 完全通过类似于Git Bash的linux命令操作. 第三种方法 在一个新项目中,直接创建一个Git库. 右侧也同样会出现Git工具栏.

  • JavaScript创建对象的四种常用模式实例分析

    本文实例讲述了JavaScript创建对象的四种常用模式.分享给大家供大家参考,具体如下: 这里介绍了javascript中创建对象常用的几种模式,包括:工厂模式,构造函数模式,原型模式,组合构造函数与原型的模式,动态原型模式. 一.工厂模式 看如下代码: function getMySon(name,sex){ var o={}; o.name=name; o.sex=sex; o.sayName = function(){ alert(this.name); } return o; } so

  • 详述IntelliJ IDEA提交代码前的 Code Analysis 机制(小结)

    在我们用 IntelliJ IDEA 向 SVN 或者 Git 提交代码的时候,IntelliJ IDEA 提供了一个自动分析代码的功能,即Perform code analysis: 如上图所示,当我们勾选Perform code analysis之后,点击commit,IntelliJ IDEA 就会在提交代码之前对项目的代码进行分析检查,并将检查结果以错误和警告的形式展示出来: 如上图所示,这是Code Analysis的结果示例,为No errors and 6 warnings. 如果

  • 详解git的分支与合并的两种方法

    如何将两个分支合并到一起.就是说我们新建一个分支,在其上开发某个新功能,开发完成后再合并回主线. 1.   git merge 咱们先来看一下第一种方法 -- git merge 在 Git 中合并两个分支时会产生一个特殊的提交记录,它有两个父节点.翻译成自然语言相当于:"我要把这两个父节点本身及它们所有的祖先都包含进来."下面具体解释. # 创建新分支 bugFix git branch bugFix # 切换到该分支 git checkout bugFix # 提交一次 git c

  • Git回退代码到某次commit的实现方法

    前言 工作中,Git的使用越来越频繁..除了最常用的clone,add,commit,push,pull等命令:还有回退命令reset.这一篇博客就记录一下该回退命令的简单使用. 场景 因为公司开发过程中,处理订单,限时购买等业务时,都是用的阿里云的消息队列MQ实现的.或者是两个系统之间的交互,同步信息,如用户在支付系统A下了一个订单(支付成功),这个时候支付系统A除了处理订单,还有向库存系统B发送一个消息,告知库存系统B要减少下单商品的库存. 我本地跑项目的时候,如果不注释掉监听器,测试服上的

随机推荐