怎么撤销 git commit 提交的代码

简介: 怎么撤销 git commit 提交的代码

问题

比如:我在项目里面添加了一个新的组件 gitTest.vue


20210708173242898.png


写完之后,我就提交代码:

git add .
git commit -m '提交git测试组件'


2021070817350135.png


git reset 命令

菜鸟教程:git reset 命令

git reset 命令用于回退版本,可以指定退回某一次提交的版本。


git reset 命令语法格式如下:

git reset [--soft | --mixed | --hard] [HEAD]


-mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。


   不删除工作空间改动代码,撤销 commit,并且撤销 git add . 操作

   git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的

–soft 参数用于回退到某个版本

   不删除工作空间改动代码,撤销 commit,不撤销 git add .

–hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交

   删除工作空间改动代码,撤销 commit,撤销 git add .


实例:

$ git reset HEAD^               # 回退所有内容到上一个版本  
$ git reset HEAD^ hello.php     # 回退 hello.php 文件的版本到上一个版本  
$ git reset 052e                # 回退到指定版本
$ git reset --soft HEAD~3       # 回退上上上一个版本
$ git reset --hard HEAD~3         # 回退上上上一个版本  
$ git reset --hard bae128           # 回退到某个版本回退点之前的所有信息。 
$ git reset --hard origin/master    # 将本地的状态回退到和远程的一样 



注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。

HEAD 说明:


  • HEAD 表示当前版本
  • HEAD^ 上一个版本
  • HEAD^^ 上上一个版本
  • HEAD^^^ 上上上一个版本

可以使用 ~数字表示

  • HEAD~0 表示当前版本
  • HEAD~1 上一个版本
  • HEAD~2 上上一个版本
  • HEAD~3 上上上一个版本




解决

执行完commit后,想撤回commit,怎么办?


通过上面的 git reset 命令学习,可以知道:使用下面的命令

# 回退上一个版本,然后需要删掉代码
git reset --hard HEAD~1


执行完我们发现已经回退到了提交前的状态

可以输入查看日志命令:

git log --oneline -10


20210708180649153.png



拓展

推荐阅读:Git 工具 - 重置揭密


目录
相关文章
|
2月前
|
开发工具 git
使用Git根据日期进行代码版本切换的方法
通过以上步骤,可以有效地根据日期进行Git代码版本的切换。这种方法在需要回溯历史版本进行bug修复或功能复查时特别有用。Git的灵活性和强大功能使其成为现代软件开发不可或缺的工具之一。
287 103
|
5月前
|
API 开发工具 git
使用git pull遇到Automatic merge failed; fix conflicts and then commit the result.解决方案卓伊凡
使用git pull遇到Automatic merge failed; fix conflicts and then commit the result.解决方案卓伊凡
244 0
使用git pull遇到Automatic merge failed; fix conflicts and then commit the result.解决方案卓伊凡
|
5月前
|
数据可视化 Java 测试技术
Git Flow 现代实操指南含从代码提交到 CI/CD 全流程的实用技巧与长尾关键词解析 Git Flow
本指南结合现代技术趋势,详解Git Flow工作流,涵盖GitHub Actions自动化、Conventional Commits规范、Gitmoji可视化等内容,助你实现代码到CI/CD的全流程管理,提升团队开发效率与代码质量。
381 2
|
5月前
|
开发工具 git
使用Git下载指定版本或指定commit
使用Git下载指定版本或指定commit
|
6月前
|
存储 人工智能 缓存
Git Commit规范:为什么有些公司要求变更行数限制?·优雅草卓伊凡
Git Commit规范:为什么有些公司要求变更行数限制?·优雅草卓伊凡
263 3
Git Commit规范:为什么有些公司要求变更行数限制?·优雅草卓伊凡
|
9月前
|
人工智能 前端开发 Java
用git rebase命令合并开发阶段中多条commit提交记录
通过 `git rebase`,可以合并多个提交记录,使开发历史更简洁清晰。操作分为 6 步:查看提交历史 (`git log --oneline`)、设置需合并的提交数 (`git rebase -i HEAD~N`)、修改动作标识为 `s`(squash)、保存退出编辑、调整提交信息、强制推送至远程仓库 (`git push -f`)。此方法适合清理本地无关提交,但若有团队协作或冲突风险,需谨慎使用以避免问题。
1469 60
|
7月前
|
JavaScript 前端开发 持续交付
实际工作中 Git Commit 代码提交规范是什么样的?
实际工作中 Git Commit 代码提交规范是什么样的?
480 7
|
7月前
|
网络安全 开发工具 git
Git仓库创建与代码上传指南
本教程介绍了将本地项目推送到远程Git仓库的完整流程,包括初始化本地仓库、添加和提交文件、创建远程仓库、关联远程地址及推送代码。同时,还提供了`.gitignore`配置、分支管理等可选步骤,并针对常见问题(如认证失败、分支不匹配、大文件处理及推送冲突)给出了解决方案。适合初学者快速上手Git版本控制。
|
6月前
|
开发工具 git 索引
如何使用Git的暂存区来管理代码更改?
如何使用Git的暂存区来管理代码更改?
997 0
|
8月前
|
前端开发 开发工具 git
Git报错处理:解决git commit时的lint-staged错误提示。
极好的,你对Git的lint-staged出了一个令人头疼的问题。让我们一起钻研一下,找到一种方法来解决一切。 首先,我们要确定你是在做什么操作时候遇到了问题。lint-staged通常在我们运行 git commit 时启动,它做的工作是在你提交之前运行一些指定的命令检查你的代码。当lint-staged报错,多半是因为检查未通过,或者它试图运行的命令存在问题。 让我们以一种图解的方式来描绘一下这个过程,就像canvas上的画面那样。git正在温柔的将你的修改捆绑起来,准备提交。突然,lint-staged走了出来,并开始盘问着Git,寻找可能的错误。如果lint-staged找到了什么
888 24