42
|
Bite code · 技术社区 · 14 年前 |
1
53
这个答案大部分是从我对前一个问题的回答中引用的: git reset in plain english . 这两者截然不同。它们为索引树和工作树生成相同的状态,但生成的历史记录和当前分支不相同。 假设您的历史是这样的,主分支当前已签出:
然后你就跑
如果你使用
现在,假设你会跑
你最终进入了一种超然的状态。
所以,您使用check out来检查提交。你可以随意摆弄它,做你喜欢做的事,但你已经把你的分支丢在后面了。如果希望分支也移动,则使用重置。 |
2
14
如果Git提供的文档对您没有帮助,请查看 A Visual Git Reference Mark Lodato。
尤其是如果你在比较
git checkout master~3 http://marklodato.github.com/visual-git-guide/checkout-detached.svg.png git reset --hard master~3 http://marklodato.github.com/visual-git-guide/reset-commit.svg.png
注意,在
|
3
6
最终,Git处理三件事:
您可以这样想存储库:
假设你的历史是这样的:
记住,分支只是在提交时自动前进的名称。 因此,您有以下分支:
你现在的分支机构是
然后,
|