相关疑难解决方法(0)

"git reset"和"git checkout"有什么区别?

我一直在想,git reset并且git checkout同样地,在这个意义上,两者都将项目带回特定的提交.但是,我觉得它们不可能完全相同,因为这将是多余的.这两者之间的实际差异是什么?我有点困惑,因为svn只svn co需要恢复提交.

添加

下面的图解释了差别,尽管在一个或者可能过于简化的或不正确的方式进行.你怎么看?是错误还是过度简化?

http://a.imageshack.us/img192/5440/screenshot20100903at416.png

增加2

VonC和Charles解释了两者之间的差异,git reset并且git checkout非常好.我目前的理解是git reset将所有更改还原为特定提交,而git checkout更多或更少的准备分支.我发现以下两个图对于理解这些图非常有用:

http://a.imageshack.us/img651/1559/86421927.png http://a.imageshack.us/img801/1986/resetr.png

增加3

http://think-like-a-git.net/sections/rebase-from-the-ground-up/using-git-cherry-pick-to-simulate-git-rebase.html,checkout和reset可以模拟反叛.

在此输入图像描述

git checkout bar 
git reset --hard newbar 
git branch -d newbar 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

git git-checkout git-reset

415
推荐指数
5
解决办法
11万
查看次数

标签 统计

git ×1

git-checkout ×1

git-reset ×1