我见过许多使用 Git 丢弃更改/恢复到先前提交的不同方法。我通常可以弄清楚哪种方法适合我的情况,但在此过程中,我对不同的方法感到非常困惑。最近我试图撤消一些文件重命名,无论我多么努力地尝试git checkout
旧版本的文件,我仍然无法恢复我的旧文件。
我正在寻找有关使用哪种方法以及原因的说明。这是我对几种方法的理解。我意识到答案可能与上下文相关,但我想尝试找出哪些上下文需要哪些方法。
1)git checkout -- .
- 用于检出最新版本的文件,将覆盖旧文件但不会影响已删除、重命名或新文件。
2)git stash save --keep-index
其次是git stash drop
- 隐藏未提交的文件,然后完全删除它们。如果您已经提交了想要保留的更改和想要丢弃的未提交/未暂存的更改,那么这是一种很好的方法。
3)git reset --hard
- 清除自上次提交以来的所有内容,包括文件重命名、删除和添加。
这是我目前对我的选择的理解。你会对我的解释有什么改变吗?我也不确定何时使用 agit revert
代替上述命令。
来源帖子: