我想恢复当前分支中所有未提交的更改说' master
'。在以下情况中最好使用的是什么?为什么?:
git checkout -f master
git reset --hard <last commitID>
我想恢复当前分支中所有未提交的更改说' master
'。在以下情况中最好使用的是什么?为什么?:
git checkout -f master
git reset --hard <last commitID>
他们都做你需要做的:丢弃所有未提交的更改,但 checkout 旨在切换到一个新分支,丢弃当前分支上未提交的更改,例如:
git branch
*master
#Do some changes
git checkout -f new_feature #It switch to the other branch(new_feature), discarding all the current branch changes, in one single command.
与git reset --hard
您实现相同的目标,但是如果您还想切换分支,则必须再执行一个命令:
git branch
*master
#Do some changes
git reset --hard
git checkout new_feature
我认为如果你留在同一个分支中,这两个命令是等价的......
git checkout -f master
它的作用非常简单:
如果您只是结帐,您的本地更改将不会丢失。
如果要覆盖更改,请添加 -f 标志以确保所有文件都恢复到“原始”状态。它还允许您在分支之间切换。
如果您正在处理当前分支,您可以简单地使用重置并省去切换分支的需要。
git reset --hard <last commitID>
重置有几个选项:软,混合和硬。每个人做不同的事情。更多信息:
https://www.kernel.org/pub/software/scm/git/docs/git-reset.html