最佳答案
我一直认为git reset
和git checkout
是相同的,在某种意义上,它们都将项目带回特定的提交。然而,我觉得它们不可能完全相同,因为那样就多余了。两者之间的实际区别是什么?我有点困惑,因为svn只有svn co
来恢复提交。
VonC和Charles很好地解释了git reset
和git checkout
之间的区别。我目前的理解是git reset
将所有更改还原为特定的提交,而git checkout
或多或少为分支做了准备。我发现下面两张图对理解这个问题非常有用:
在http://think-like-a-git.net/sections/rebase-from-the-ground-up/using-git-cherry-pick-to-simulate-git-rebase.html中,签出和重置可以模拟rebase。
git checkout bar
git reset --hard newbar
git branch -d newbar