我已经看到许多不同的方法可以使用Git丢弃更改/恢复到之前的提交。我通常可以找出哪些适用于我的情况,但在这个过程中我对不同的方法感到很困惑。最近我试图撤消一些文件重命名,无论我怎么努力git checkout
文件的旧版本,我仍然无法恢复旧文件。
我正在寻找有关使用哪种方法及其原因的说明。以下是我对一些方法的理解。我意识到答案可能非常具有上下文性,但我想尝试找出哪些上下文需要哪种方法。
1) git checkout -- .
2) git stash save --keep-index
,然后是 git stash drop
3)的 git reset --hard
这是我目前对我的选择的理解。你对我的解释有什么改变吗?我也不确定何时使用git revert
来代替上述命令。
来源帖子:
答案 0 :(得分:9)
git stash -u
是首选方式。不要掉下来。他们不会被推。如果您确实发现了一些重要的东西,那么您可以将它们取回。
你的其他选择具有破坏性。
Revert正在为历史记录添加一个新提交,该提交应用与提交引入的修补程序相反的历史记录。您在此处的选择是针对您希望如何处理工作树中尚未成为历史记录的更改。还原是针对作为历史记录一部分的已提交更改。