Git学习-高级篇1

Git 快速入门

基础篇重点回顾

git commit 主要将本地目录进行提交,相当于另外复制一份
git branch 新建一个分支,如果你不想和主分支一起修改,你可以新建一个分支
git merge 对分支进行合并
git rebase 也是对分支进行合并,与git merge不同的是,它合并成线性
git checkout 进行分支切换

举例:

git branch bugFix;  //初始分支为master,现在新建一个分支bugFix
git checkout bugFix;  //将当前分支转换为bugFix
git commit;  //在当前分支提交修改
git checkout master;  //转换master分支为当前分支
git commit;  //在当前分支master提交修改
git merge bugFix;  //将bugFix分支的修改合并到当前分支master上

运行结果图示:

在这里插入图片描述

高级篇学习

本篇主要介绍git的一些特性
在接触git更高级的功能之前,有必要先学习一下在你的项目的提交树上前后移动的几种方法,一旦你熟悉了如何在Git提交树上移动,你驾驭其他命令的能力也会水涨船高。

HEAD分离特性

HEAD是一个对当前检出记录的符号引用,就像指针一样,指向你正在其基础上进行工作的提交记录。HEAD总是指向当前分支最近的一次提交记录。HEAD通常情况下是指向分支名的(如bugFix),在你提交时,改变了bugFix的状态,**分离的HEAD 就是让其指向了某个具体的提交记录,而不是分支名。**话不多说,请看下面例子。

图示举例:

在分离之前

在这里插入图片描述

运行如下代码,看分离之后图示,c1指的是提交记录的哈希值,实际中很长的,这里只用简短的c1代替。注:git log可以查看提交记录的哈希值。

git checkout c1;  //利用HEAD进行分离,让其指向具体的提交记录c1,而不是master

在这里插入图片描述

相对引用

前面说过,如果想让HEAD指向任意一个提交记录,我们可以用git checkout 哈希值,将HEAD指向对应的提交记录,但是哈希值也太长了!一个一个输人都🐎了。所以Git引入了相对引用,相对引用用法如下:

  • 使用^向上移动一个提交记录
  • 使用~num向上移动num个提交记录

图示举例:

分离之前,注意看当前HEAD指向的是master分支,有个*号

在这里插入图片描述

运行如下代码,将HEAD指向c1,注意:如果存在多个分支,我们需要先转换到该分支,然后再通过下面的命令进行分离。

git checkout master^

在这里插入图片描述

除了^上移的方式,还有~数字的形式,如下图,在未执行前

在这里插入图片描述

git checkout HEAD~4

在这里插入图片描述

强制修改分支位置

现在你已经学会了相对引用,接下来我们用相对引用做点实际的事,我们可以使用相对引用移动分支,可以使用下面的命令让分支指向另一个提交。

git branch -f master HEAD~3  //将master分支强制指向HEAD的第3级父提交

图示举例:

如图所示,可以看到有两个分支,HEAD指向c2这个提交记录,我们现在来移动分支,让bugFix指向c0,master指向c6。

在这里插入图片描述

git branch -f bugFix HEAD~2;  //bugFix指向c0
git checkout c6;  //HEAD指向c6
git branch -f master HEAD;  //master指向c6

在这里插入图片描述
可以结合图片理解。

撤销变更

在Git里撤销变更的方法很多,撤销变更由底层部分(暂存区的独立文件或片段)和上层部分(变更到底是通过哪种方式撤销的)组成,我们主要介绍第二种。
主要由两种方法撤销变更:

  • git reset
  • git revert

git reset 图示举例:

git reset 通过把分支记录回退几个提交记录来实现撤销改动,就像是在改写历史。

在这里插入图片描述

git reset HEAD~1

在这里插入图片描述
git把master分支移回到了c1,本地代码库就没有c2这个提交了。这种方法适用于本地分支

git revert 图示举例:

git revert HEAD

在这里插入图片描述
这里的c2’其实是撤销了c2里的修改的,c2’和c1一样。这种方法适用于远程分支

  • 41
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值