抱歉,这三个 git 命令正在考验我的智力。
是否可以为所有新手建立一个群组 wiki 来涵盖这三个 git 命令?我想要学习的是如何将文件和项目恢复或回滚到之前的状态。
由于我没有使用 Subversion 或其他集中式版本控制软件的经验,因此没有必要引用它们的不同做法,而且常常会造成困惑。
谢谢。
最佳答案
您提到的所有资源都很受欢迎,但我很惊讶您没有发现它们有帮助。每个命令的手册页可能是最具描述性的资源,但无可否认是枯燥和密集的。下面简单总结一下这三个命令的区别:
git revert
采用树状结构并创建一个新的提交,撤消给定提交中所做的更改git checkout
就是这样做的: checkout 一个树状结构。如果您传递分支名称,您将移动到该分支的HEAD
,如果您传递非HEAD
提交或标记,您将输入“分离”HEAD
”状态。无论如何,您的工作树现在将与提交时相同(这里存在一些未跟踪/新文件的边缘情况)。git reset
采用树状结构,并删除直到(但不包括)给定提交的所有提交,但不更改任何文件的当前状态。也就是说,提交消失了,但您的工作树仍处于相同状态。传递--hard
也会将文件恢复到状态。
关于Git 恢复、 checkout 和重置傻瓜式教程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8191444/