为了账号安全,请及时绑定邮箱和手机立即绑定

在Git中恢复由SHA哈希提交?

在Git中恢复由SHA哈希提交?

Git
萧十郎 2019-08-28 16:18:39
在Git中恢复由SHA哈希提交?我不清楚如何git revert工作。例如,我想在头部后面恢复提交六次提交,恢复中间提交之间的所有更改。说它的SHA哈希是56e05fced214c44a37759efa2dfc25a65d8ae98d。那我为什么不能做以下事情:git revert 56e05fced214c44a37759efa2dfc25a65d8ae98d
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞


如果要在当前HEAD上提交具有不同提交的确切状态,撤消所有中间提交,则可以使用reset创建索引的正确状态来进行提交。


# Reset the index and working tree to the desired tree

# Ensure you have no uncommitted changes that you want to keep

git reset --hard 56e05fced


# Move the branch pointer back to the previous HEAD

git reset --soft HEAD@{1}


git commit -m "Revert to 56e05fced"


查看完整回答
反对 回复 2019-08-28
?
Helenr

TA贡献1780条经验 获得超3个赞

什么混帐复归确实是一个指定的提交创建一个承诺,撤消在给定提交所做的更改,创建提交其反向(当然,倒数)。因此

git revert <SHA-1>

应该而且确实有效。

如果你想回退到指定的提交,并且你可以这样做,因为这段历史尚未发布,你需要使用git-reset,而不是git-revert:

git reset --hard <SHA-1>

(注意,--hard这将使您丢失工作目录中的任何未提交的更改)。

补充说明

顺便说一下,也许它并不明显,但在文档说<commit><commit-ish>(或<object>)的任何地方,你都可以提交一个SHA-1标识符(完整或缩短)。


查看完整回答
反对 回复 2019-08-28
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

它恢复了所述提交,即添加与其相反的提交。如果要签出早期版本,请执行以下操作:

git checkout 56e05fced214c44a37759efa2dfc25a65d8ae98d


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 490 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信