放弃Git中更改的正确方法
我见过许多不同的方法,可以使用Git放弃更改/恢复到以前的提交。我通常能找出适合我的情况的方法,但在这个过程中,我被不同的方法弄糊涂了。最近,我试图撤销一些文件重命名,无论我多么努力地放弃Git中更改的正确方法,git,branch,rollback,git-reset,Git,Branch,Rollback,Git Reset,我见过许多不同的方法,可以使用Git放弃更改/恢复到以前的提交。我通常能找出适合我的情况的方法,但在这个过程中,我被不同的方法弄糊涂了。最近,我试图撤销一些文件重命名,无论我多么努力地git checkout文件的旧版本,我仍然无法取回我的旧文件 我正在寻找关于使用哪种方法以及为什么的澄清。以下是我对几种方法的理解。我意识到答案可能与上下文有关,但我想尝试找出哪些上下文需要哪些方法 1) git签出--. 用于签出文件的最新版本,将覆盖旧文件,但不会影响已删除、重命名或新文件 2) git
git checkout
文件的旧版本,我仍然无法取回我的旧文件
我正在寻找关于使用哪种方法以及为什么的澄清。以下是我对几种方法的理解。我意识到答案可能与上下文有关,但我想尝试找出哪些上下文需要哪些方法
1)
git签出--.
- 用于签出文件的最新版本,将覆盖旧文件,但不会影响已删除、重命名或新文件
git stash save——保留索引,然后是git stash drop
- 隐藏未提交的文件,然后完全删除它们。如果您有要保留的已提交更改和要放弃的未提交/未老化更改,那么这是一种很好的方法
3) git重置——硬的
- 清除自上次提交以来的所有内容,包括文件重命名、删除和添加李>
这是我目前对我的选择的理解。你对我的解释有什么改变吗?我也不确定何时使用git revert
来代替上述命令
来源帖子:
是首选的方式。不要掉下去。他们不会被推。万一你发现了什么重要的东西,你可以把它们找回来
你的其他选择是毁灭性的
Revert是在历史记录中添加一个新的提交,该提交与提交引入的修补程序相反。您在这里的选择是为了处理尚未成为历史一部分的工作树中的更改。“还原”用于提交的更改,这些更改是历史记录的一部分。u做什么?我真的不想用我不需要的代码填满我的存储堆栈。不要担心填满你的存储-u
除了跟踪的文件外,还隐藏未跟踪的文件。它允许它像重置一样工作。
git stash -u