Git Revert,Checkout和Reset for Dummies

时间:2011-11-19 02:33:30

标签: git git-checkout git-reset git-revert

很抱歉,但这三个git命令对我的情报造成了负担。

是否可以为总新手设置一个组wiki来覆盖这三个git命令?我想要学习的是如何将文件和项目恢复或回滚到先前的状态。

由于我没有使用颠覆或其他集中版本控制软件的经验,因此参考他们如何以不同方式执行操作是不必要的,而且往往令人困惑。

感谢。

4 个答案:

答案 0 :(得分:3)

你提到的所有资源都很受欢迎,我很惊讶你没有发现它们有用。每个命令的手册页可能是最描述性的资源,但公认的是干燥和密集。以下是三个命令之间差异的简要概述:

  • git revert采用树状结构并创建新提交,撤消在给定提交中所做的更改

  • git checkout就是这样做的:检查一下树木。如果您传递分支名称,则会转到该分支的HEAD,如果您传递非HEAD提交或标记,则会输入“分离的HEAD”州。无论如何,您的工作树现在将与提交时相同(此处有一些边缘情况与未跟踪/新文件)。

  • git reset采用树状结构,并删除所有提交(但不包括)给定提交,但不更改任何文件的当前状态。也就是说,提交已经消失,但是您的工作树仍处于相同的状态。传递--hard也会将文件恢复到状态。

(是的,a treeish is a real thing

答案 1 :(得分:1)

答案 2 :(得分:0)

  

是否可以为总新手设置一个小组wiki来覆盖这三个git命令?

诚实?可能,是的。也许,也许。我从来没有设置维基,所以我不知道我是否能够帮助你。 :P

但是,如果你以前没见过这个链接,可以帮助你:http://wiki.freegeek.org/index.php/Git_for_dummies

此外,如果您尚未解析此问题,请查看此问题:Git for beginners: The definitive practical guide

答案 3 :(得分:0)

http://progit.org/2011/07/11/reset.html帮助我了解结帐和重置之间的相同点和不同点。 Revert是一个不同的故事,它创建了一个新的提交,取消了另一个提交。