怎么撤销 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 工具 - 重置揭密


目录
相关文章
|
1月前
|
人工智能 缓存 开发工具
结合企业实践来规范你的Git commit(含插件使用指南)
结合企业实践来规范你的Git commit(含插件使用指南)
结合企业实践来规范你的Git commit(含插件使用指南)
|
1月前
|
安全 开发工具 数据安全/隐私保护
《Git 简易速速上手小册》第8章:保护你的代码(2024 最新版)
《Git 简易速速上手小册》第8章:保护你的代码(2024 最新版)
47 1
|
20天前
|
缓存 开发工具 git
windows系统通过git上传代码
windows系统通过git上传代码
|
12天前
|
开发工具 git 开发者
【git merge/rebase】详解合并代码、解决冲突
【git merge/rebase】详解合并代码、解决冲突
34 0
|
1月前
|
JSON 开发工具 git
git rebase 合并当前分支的多个commit记录
git rebase 合并当前分支的多个commit记录
|
21天前
|
Shell 开发工具 git
git拉去代码报错"Failed to connect to 127.0.0.1 port 31181: Connection refused"
在克隆`https://example.git/`时遇到错误:"fatal: unable to access 'https://example.git/': Failed to connect to 127.0.0.1 port 31181: Connection refused"。原因是Windows上代理设置未正确关闭,影响了Git配置。解决方法是通过git bash运行命令检查并取消代理:`git config --global http.proxy`和`git config --global --unset http.proxy`。
33 1
 git拉去代码报错"Failed to connect to 127.0.0.1 port 31181: Connection refused"
|
6天前
|
Shell 测试技术 网络安全
【GIT】如何在GitHub上向一个开源项目贡献代码?
【GIT】如何在GitHub上向一个开源项目贡献代码?
21 5
|
11天前
|
存储 开发工具 git
蓝易云 - git中,add到暂存区,commit且push之后,暂存区域里还有内容吗
所以,当你执行 `git add`,然后是 `git commit`,最后是 `git push`之后,暂存区是空的,除非你又执行了新的 `git add`命令来添加更多的更改。
16 1
|
7天前
|
开发工具 git
一文教你如何设置git commit模板规范
一文教你如何设置git commit模板规范
|
12天前
|
敏捷开发 测试技术 持续交付
【git分支管理策略】如何高效的管理好代码版本
【git分支管理策略】如何高效的管理好代码版本
27 0