我需要还原部署的本地更改.(我svn revert
在旧的skool SVN时代已经习惯了.)
我正在使用git reset --hard HEAD
这个.(此外git fetch
和git merge origin/$branch --no-ff
用于与上游分支同步处理资料.)
但有些文章指出git checkout -f
要恢复变化.
这些命令之间的主要区别是什么.推荐哪种方式?
Col*_*ert 55
他们两个具有完全相同的效果.我建议你选择更舒适的解决方案.
但是,如果在这种特殊情况下效果是相同的,使用不同的值,它将完全不同.基本上(还有更多,请参阅链接主题)通过重置将当前分支和HEAD移动到特定提交但是通过结帐,您只需移动HEAD.有关详细信息,请参见下文
资源:
在同一主题上:
use*_*768 11
还没有代表对其他答案发表评论,我只是想补充一点,我遇到了两个命令没有相同效果的情况.我进入了一个奇怪的状态,所以这绝对是一个优势.这是发生了什么:
我在一个分支,一切都干净.我检查了主git checkout master
,发现从git status
,有变化没有上演现有文件提交(是的,在代码中,我刚刚签出).我试图藏匿回到一个干净的状态,藏匿处声称已经完成但git status
仍未改变.也试过了git reset --hard HEAD
.它也报告说成功完成但状态并没有什么不同.我不能放弃这些奇怪的变化.
但是,git checkout -f
解决了这一点.我能够远离这个奇怪的状态.所以,至少在某些方面,两者并不相同.
归档时间: |
|
查看次数: |
77006 次 |
最近记录: |