2

抱歉,但这三个 git 命令正在消耗我的智慧。

是否可以为所有新手建立一个群组 wiki 来涵盖这三个 git 命令?我想学习的是如何将文件和项目恢复或回滚到以前的状态。

由于我没有使用 subversion 或其他集中式版本控制软件的经验,因此没有必要参考他们如何以不同的方式做事,而且常常令人困惑。

谢谢。

4

4 回答 4

3

你提到的所有资源都很受欢迎,我很惊讶你没有发现它们有帮助。这些命令中的每一个的手册页可能是最具描述性的资源,但无疑是枯燥而密集的。下面简单总结一下这三个命令的区别:

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

  • git checkout就是这样做的:检查一个treeish。如果您传递一个分支名称,您将移动到该HEAD分支的,如果您传递一个非HEAD提交或标记,您将进入一个“分离HEAD”状态。无论如何,您的工作树现在将与提交时相同(这里有一些带有未跟踪/新文件的边缘情况)。

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

(是的,treeish 是真实存在的

于 2011-11-19T04:15:57.127 回答
1

这是一个链接可能会有所帮助。
http://book.git-scm.com/4_undoing_in_git_-_reset,_checkout_and_revert.html

于 2011-11-19T02:44:21.480 回答
0

是否可以为所有新手建立一个群组 wiki 来涵盖这三个 git 命令?

诚实地?大概,是的。当然,也许。不过,我从来没有建立过维基,所以我不知道我是否能够帮助你。:P

不过,说真的,如果您以前没有看过此链接,它可能会对您有所帮助:http ://wiki.freegeek.org/index.php/Git_for_dummies

此外,如果您还没有解析过这个问题,请查看这个问题:Git for初学者:权威实用指南

于 2011-11-19T02:48:47.590 回答
0

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

于 2011-11-19T06:53:54.093 回答