首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >"git checkout -f“和"git reset --hard HEAD”有什么区别?

"git checkout -f“和"git reset --hard HEAD”有什么区别?
EN

Stack Overflow用户
提问于 2011-06-01 21:24:37
回答 1查看 101.8K关注 0票数 87

我需要恢复部署的本地更改。(在以前的skool SVN时代,我曾经使用过svn revert。)

我使用git reset --hard HEAD来实现这一点。(还包括用于与上游分支同步的git fetchgit merge origin/$branch --no-ff。)

但一些文章指出git checkout -f可以恢复更改。

此命令之间的主要区别是什么。推荐哪种方式?

EN

回答 1

Stack Overflow用户

发布于 2014-05-06 02:16:33

我还没有对其他答案发表评论的代表,我只是想补充说,我遇到了两个命令没有相同效果的情况。我进入了一种奇怪的状态,所以这绝对是一种边缘情况。下面是发生的情况:

我在树枝上,一切都很干净。我签出了主git checkout master,并从git status中发现了对现有文件的更改,这些更改不是暂存于提交阶段的(是的,在我刚刚签出的代码上)。我尝试隐藏以恢复到干净的状态,隐藏声称已完成,但git status仍未更改。我也尝试过git reset --hard HEAD。它也报告成功完成,但状态没有什么不同。我不能放弃这些奇怪的改变。

然而,git checkout -f解决了这个问题。我得以摆脱这种奇怪的状态。因此,至少在某些方面,这两者是不同的。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6201877

复制
相关文章

相似问题

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