写代码都会犯错误,不小心提交了一个错误我该怎么办?提交的描述信息我该怎么办?如果你也遇到这个问题,那么今天胖哥分享的这篇文章将非常适合你。
放心都是有后悔药吃的,我们来看看。
场景一
假如你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有四种模式 soft、mixed、hard、keep,说明如下:
git revert 也能实现,区别在于revert会产生一次Commit,需要填写提交信息。
场景五
代码已经推送到远程服务器了,我想撤回某个文件,你可以这么操作:
# 查看文件历史版本 git log <filename> # 回滚到指定commitId git checkout <commitId> <filename> # 提交被修改的文件 git commit -m '回滚特定文件的变动' # 推送 git pus
我经常用的也就这些了,但是吃后悔药的时候一定要小心,最好拉一个新分支在新分支上试试,不要强吃后悔药,不然你会后悔的。目前像 IDEA 都是可视化操作你可以不用命令操作,不过胖哥个人觉得这些命令还是要熟悉的。
到此这篇关于Git提交代码错了吃后悔药的几种常用办法(场景分析)的文章就介绍到这了,更多相关Git提交代码错误内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
考虑下面这个函数模板: template <typename T, typename U> void foo(T t, typename U::type u) { // ... } 到本节为止,我们所有的例子都保证了一旦咱们敲定了模板参数中 T 和 U,函数参变量 t 和 u 的类型都是成立的,比如下面这样: struct X { typedef float type; }; templ
本文向大家介绍利用git提交代码的方法步骤,包括了利用git提交代码的方法步骤的使用技巧和注意事项,需要的朋友参考一下 一、首先需要下载git 查看电脑是否安装git,打开终端,输入git,回车如果输出如下,则代表已安装了git 如果未安装,则会输出: 按照提示输入:sudo apt-get install git即可安装!!或者到此处下载:git下载,pkg包下载完成,双击安装。 输入命令:
本文向大家介绍Java8 forEach常用场景代码实例,包括了Java8 forEach常用场景代码实例的使用技巧和注意事项,需要的朋友参考一下 forEach and Map 1.1 通常这样遍历一个Map 1.2 在java8中你可以使用 foreach + 拉姆达表达式遍历 forEach and List 2.1 通常这样遍历一个List. 2.2 在java8中你可以使用 foreac
本文向大家介绍Git 提交后,包括了Git 提交后的使用技巧和注意事项,需要的朋友参考一下 示例 该挂钩在commit-msg挂钩之后立即被调用。它不能更改git commit操作的结果,因此主要用于通知目的。 该脚本不带任何参数,并且其退出状态不会以任何方式影响提交。
受 Growth 3.0 开发的影响,最近更新文章的频率会有所降低。今天,让我们来谈谈一个好的 Git、SVN 提交信息是怎样规范出来的。 在团队协作中,使用版本管理工具 Git、SVN 几乎都是这个行业的标准。当我们提交代码的时候,需要编写提交信息(commit message)。 而提交信息的主要用途是:告诉这个项目的人,这次代码提交里做了些什么。如,我更新了 React Native Ele
本文向大家介绍java中Lambda常用场景代码实例,包括了java中Lambda常用场景代码实例的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java中Lambda常用场景的具体代码,供大家参考,具体内容如下 以上所述是小编给大家介绍的[java中Lambda常用场景详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站