提交退回

简介: git reset 命令用于将当前HEAD复位到指定状态。简单来说就是,回退你已提交的 commit,并将 commit 的修改内容放回到暂存区。

git reset 命令用于将当前HEAD复位到指定状态。简单来说就是,回退你已提交的 commit,并将 commit 的修改内容放回到暂存区。

一般我们在使用 reset 命令时,git reset --hard 会被提及的比较多,它能让 commit 记录强制回溯到某一个节点。而 git reset --soft 的作用正如其名,--soft (柔软的) 除了回溯节点外,还会保留节点的修改内容。

应用场景

  1. 提交信息不小心写了个错别字
  2. 将不属于本次提交范畴内的文件提交了

命令使用

现在我们要退回最近一次的提交:

使用命令:

git reset --soft HEAD^

# or

git reset --soft <commitID>

使用git reset --soft 后,将回到你点击确定提交前的状态,此时你更改的代码会留在暂存区,提交信息也会存在,只等你再次按下提交按钮。

以上说的是还未 push 的commit。对于已经 push 的 commit,也可以使用该命令,不过再次 push 时,由于远程分支和本地分支有差异,需要强制推送 git push -f 来覆盖被 reset 的 commit。

还有一点需要注意,在 reset --soft 指定 commit 号时,会将该 commit 到最近一次 commit 的所有修改内容全部恢复,而不是只针对该 commit。该操作导致的问题就是你需要重新编写这几次的提交信息。

使用命令查看进三次的提交:

git log --pretty=online -3

--pretty=online 会美化输出的提交信息,-3 输出最近的三条提交记录,是 -n 3参数的简写。 如下图:

现在将提交信息为 a 的提交退回。复制出 commit ID进行回退:

git reset --soft 225772480c8658837199ccadd7bd0cff787cebc0

 此时HEAD指向了a,b,c 回到了暂存区,

目录
相关文章
|
6月前
|
iOS开发
如何让你的应用在后台可以继续处理未完事务
如何让你的应用在后台可以继续处理未完事务
56 1
|
3月前
|
小程序 算法 Java
【技巧】Git提交描述骂了领导,不会删除提交记录咋办!
本文以一次git提交失误的故事为背景,详细介绍了如何使用`git revert`和`git reset`两个命令来撤销错误提交。`git revert`用于撤销提交并创建新提交以保留历史记录,而`git reset`则通过移动HEAD指针来修改提交历史,不创建新提交。文章通过实例演示了具体操作步骤,帮助读者在遇到类似问题时能够从容应对。
53 0
【技巧】Git提交描述骂了领导,不会删除提交记录咋办!
|
6月前
https://www.fcomcn.com提交七天还在审核中
阿里云备案工作人员服务态度不错,但 https://www.fcomcn.com 提交七天还在审核中,请问几天能下来结果,谢谢。
57 0
11月1号提交给管局https://www.shimifeng.com还没有消息
11月1号提交给管局https://www.shimifeng.com还没有消息
138 0
11月1号提交给管局https://www.shimifeng.com还没有消息
|
开发工具 git
git命令回滚撤销自己的错误覆盖提交
git命令回滚撤销自己的错误覆盖提交
116 0
|
SQL XML 存储
Flowable 任务如何认领,回退?
Flowable 任务如何认领,回退?
|
缓存 Shell 开发工具
研发中学习git(删除分支/合并提交/回滚/保存当前状态/撤销修改)
研发中学习git(删除分支/合并提交/回滚/保存当前状态/撤销修改)
154 0
邮件被退回
发给客户的邮件每次都被退回,抄送的几个都收到了
|
安全 开发工具 git
撤销本地提交-每天三分钟玩转Git (5)
撤销本地提交-每天三分钟玩转Git (5)
撤销本地提交-每天三分钟玩转Git (5)