首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git:恢复到以前的提交状态

Git:恢复到以前的提交状态
EN

Stack Overflow用户
提问于 2011-02-15 21:29:07
回答 3查看 24.9K关注 0票数 28

我很困惑。我想返回到我在"git log“中标识的前一个提交。

但是当我做"git结账“的时候,我没有得到提交。什么都没变。它告诉我我处于分离磁头模式,但我想要的文件不在那里。

我到底做错了什么?

MrB

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-15 21:31:28

手册页中的git reset --hard <commit>

将工作树和索引与要切换到的树的索引进行匹配。之后对工作树中跟踪的文件所做的任何更改都将丢失。

git checkout用于将您的工作目录切换到不同的分支或提交。这不会将HEAD移动到那里。

票数 22
EN

Stack Overflow用户

发布于 2012-10-24 01:03:15

不要git重置-hard它是永久的!

请使用

代码语言:javascript
复制
git stash -u 

取而代之!如果你无意中把一件作品放到了那里,你仍然可以把它拿回来。这永远不会被推送到你的遥控器上,除非你选择这样做,将它做一个分支并将它向上推送。

而且,您走在了正确的道路上,您可以使用git checkout来完成同样的事情。语法是

代码语言:javascript
复制
git checkout HEAD -- . 

但是它和git reset --hard有同样的问题。坚持使用stash,你将来就不会掉头发了。

较长的应答

上述解决方案将恢复您的所有更改。但是,您问到如何消除其中的一些更改。为了完整起见,我将添加以下内容。

要做到这一点,您可以

代码语言:javascript
复制
git add file1 file2 file3
git stash save --patch

现在,系统将提示您输入要使其消失的确切内容...细化到任何粒度级别。因此,如果您选择这样做,您可以安全地“拒绝”对单个文件所做的少量更改。

票数 10
EN

Stack Overflow用户

发布于 2021-11-30 09:30:20

在git中,首先获得提交标识符,然后使用该标识符可以恢复提交。

代码语言:javascript
复制
git reset --hard 50c0369
git push -f 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5004237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档