git branch checkout理解

git中可以理解为有两种指针,git的提交记录可以看做是一棵树。两种指针指向不同位置来索引。

  • branch name的指针。比如说main就是最一开始有的branch,操作都是基于main这个指针的。
  • HEAD指针。HEAD指针其实才是真正指向某一个位置的指针。我们以为main起作用,其实是因为HEAD指向了main。我们也可以用checkout让HEAD指向别的branch name指针,这样就是别的branch起作用了。当然,还可以分离HEAD和branch name,让HEAD指向某一个提交位置。

git checkout -b new 会在当前位置创建一个新的branch,并将HEAD指向它。

git checkout <branch-name> 将HEAD指向某个branch。

git checkout <hash name> 将HEAD指向某个提交位置,这一操作会将HEAD和branch分离。

git branch -f <branch-name> <position> 强制将某个branch name的指针移动到position这个位置。position可以有几种指定方式

  • 用hash值做绝对引用。
  • 用其他branch name或者HEAD,以及用HEAD^,HEAD~2这类相对引用。

尽管这些复杂的移动branch和HEAD的操作基本都用不到,但是可以很好地理解树是怎么长大的,不同的branch之间的关系。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值