git命令学习第二站——高级篇

Posted 刘炫320

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git命令学习第二站——高级篇相关的知识,希望对你有一定的参考价值。

在高级篇,我们就可以在整个图上自由的游走了。本章主要介绍3个部分:绝对引用,相对引用和撤销更改。

绝对引用

2.1关

这里介绍了一个重要的概念就是HEAD,其实HEAD指向的就是当前的执行的节点,我们只需要使用checkout命令就可以将HEAD移动到我们想要的节点上。
例如,我们想移动HEAD到C4上,因此 其通关命令为:
git checkout C4即可完成HEAD分离,这里C4是哈希值。

然而,在真实世界里有40个长,虽然git很智能的是,你只需要输入几个能够定位到你想要的节点上的hash值即可,但是仍然很麻烦,因为你是绝对定位,要使用git log来查询每次提交的哈希值,那么另一种方法就在下面介绍。

相对引用

如果你知道自己在哪或者某些明确的位置,这时候你只需要使用下面2个操作就可以回到之前的版本,而不需要知道其哈希值:^~

2.2关

^这个是回到上一个版本,即父节点,例如git checkout bugFix^则是回到bugFix的父节点。同样的操作也可以用到HEAD节点上,git checkout HEAD^则是回到头结点的父节点。

2.3关

~[num]则是一次性回退几个版本,例如,我们可以使用 git checkout bugFix~3回到C3,如下图所示。

因此第2.3关,要求将右侧状态变成左侧状态。

其通关命令为:
git branch -f master C6
git branch -f bugFix bugFix~3
git checkout HEAD^

3. 撤销变更

有时候我们有可能进行错误的操作,尤其是我们刚开始进行项目的git管理时,不清楚命令的真实行动时,就容易出现错误,因此,我们需要撤销这些错误的操作,使用git resetgit revert命令完成。

git reset主要应用于本地仓库,直接移动当前指针到上一个版本状态。未来状态直接消失了。
git revert则应用于远程仓库,或者需要保存修改记录的时候,它会提交一个新的版本,其操作是上一个版本操作的逆操作,从而恢复到上上一版本状态。值得注意的是git revert 版本号是执行该版本的逆操作,而不是回退到这个版本。

这里理解有点困难,《git reset和git revert的区别与联系》也许可以更清楚的解释。

2.4关

这一关要求比较难,如图所示。

因此本关的通关命令为:
git reset HEAD~
git checkout pushed
git revert pushed

以上是关于git命令学习第二站——高级篇的主要内容,如果未能解决你的问题,请参考以下文章

git命令学习第二站——高级篇

C++学习之旅第二站:类和对象进阶

小程序之旅——第二站()

学习静态代码审计_第二站:简单解读php-parser项目

重学Git高级命令篇

打怪升级之小白的大数据之旅(六十一)<Hive旅程第二站:Hive安装>