Git入门实用技巧(二、高级篇)

 分享一个小网页:Learn Git Branching(From pcottle (Peter Cottle) · GitHub

HEAD

我们首先看一下 “HEAD”。 HEAD 是一个对当前所在分支的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录。

HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。 HEAD 通常情况下是指向分支名的(如 bugFix)。在你提交时,改变了 bugFix 的状态,这一变化通过 HEAD 变得可见。 

观察如下代码对HEAD的影响

git checkout C1
git checkout main
git commit
git checkout C2

相对引用

这里我介绍两个简单的用法:

  • 使用 ^ 向上移动 1 个提交记录
  • 使用 ~<num> 向上移动多个提交记录,如 ~3
git checkout main^

git checkout HEAD~4

 

使用相对引用最多的就是移动分支。可以直接使用 -f 选项让分支指向另一个提交。

例如: 

git branch -f main HEAD~3

上面的命令会将 main 分支强制指向 HEAD 的第 3 级 parent 提交。

撤销变更

主要有两种方法用来撤销变更 —— 一个是 git reset,还有就是 git revert

git reset通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。

git reset HEAD~1

git reset很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的哦!

为了撤销更改并分享给别人,我们需要使用git revert:

git revert HEAD

奇怪!在我们要撤销的提交记录后面居然多了一个新提交!这是因为新提交记录C2'引入了更改 —— 这些更改刚好是用来撤销C2这个提交的。也就是说C2'的状态与C1是相同的。

revert 之后就可以把你的更改推送到远程仓库与别人分享啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值