当前位置:   article > 正文

git学习记录——高级篇_从 bugfix 分支中分离出 head 并让其指向一个提交记录

从 bugfix 分支中分离出 head 并让其指向一个提交记录

1 分离head

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

HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。

HEAD 通常情况下是指向当前分支名的(如 bugFix)。在你提交时,改变了 bugFix 的状态,这一变化通过 HEAD 变得可见。

分离head可以通过让head指向提交记录的哈希值完成。

git checkout c41d 不用写完整
  • 1

2 相对引用

由于使用哈希值来移动HEAD的指向,不太方便,因此git引入了相对引用

  • ^ 表示向上移动一个提交记录
  • ~num 表示向上移动num个提交记录,例如^3

实例1:改变HEAD的指向

git checkout master^ 移动到master分支的父记录

git checkout branch_2^^ 移动到branch_2分支的上面第二个记录

git checkout HEAD^ 将head移动到自己的父记录上

git checkout HEAD~2 移动到branch_2分支的上面第二个记录
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

实例1:强制改变分支指向的位置

git branch -f <指针名> <新的位置>

git branch -f bugFix HEAD~3 把bugFix分支指针指向HEAD的上面第三个记录

git branch -f bugFix master 把bugFix分支指针指向master
  • 1
  • 2
  • 3
  • 4
  • 5

3 撤销变更

撤销变更一般有两种办法:

  • reset,直接把分支指针指向之前的节点,相当于从之前的节点重新开始,无视新节点,但这个方法只能在本地使用,如果是远程仓库则无效。
  • revert,撤销之前的变更并创建一个新的节点。

示例:

git reset <要撤销到的位置>
git reset <要撤销到的位置(包括该节点)>

git reset HEAD^
git revert HEAD

注意,这两者是等价的
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/831323
推荐阅读
相关标签
  

闽ICP备14008679号