git底层原理(3/3)

22. 什么是git rebase

  1. Fast Forward (dev 分支有master分支最新内容)
  2. 3 way merge (dev分支没有master分支最新内容)

而git rebase是将3 way merge 的情况改造成Fast Forward这种一条线。
具体操作是将E内容整合到C上,同时将C、F重写。

在这里插入图片描述

参考链接

由于git rebase 会修改commit节点信息,所以建议不要轻易rebase,尤其是在master上rebase。因为可能在你rebase之前,其他人从这个当前节点拉了一个分支,那么你rebase后就会改变当前节点的commit信息,那么那个从该节点拉分支的人在提交的时候就会出很多不可控的问题了。

23. 标签tag到底是怎么回事

在这里插入图片描述
创建不同tag的区别:
在这里插入图片描述

.git/objects里的类型:blob、tree、commit、tag

24. 远程分支和本地分支的同步

git branch // 查看本地分支
git branch -r // 查看远程分支
git branch -a // 查看所有分支

git fetch // 通过更新refs/romotes/origin/分支名称,来同步远程和本地(包括分支内容和其他分支)
git remote // 查看远程分支
git remote -v // 查看远程分支的fetch和push
git remote show origin // 对比本地和远程分支的区别

git push --set-upsteam origin newbranch // 将本地分支推送到远程分支

其中,–set-upstream 等价于 -u

如果不写 -u,那么也会将本地分支推送到远程,但是不会 关联 上。

git push origin -d newbranch // 删除远程分支

git branch -vv // 查看当前的本地分支与远程分支的关联关系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对于3 way merge
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

27. 什么是FETCH_HEAD

git fetch会产生FETCH_HEAD,FETCH_HEAD记录信息会将当前分支放在首位。因此,当执行git pull 的时候就会知道将当前分支更新至最新的。

29. git push

30. git hooks

在这里插入图片描述
蓝色的:不会阻止继续操作,因为它是在执行后才触发;
黄色的:会阻止,因为他是在某个条件之前执行,但是可以跳过;
红色的:会阻止,而且跳不过去。

在这里插入图片描述
以.sample结尾的是不会执行的,如果把.smple去掉,就会执行了。

注意:.git/hook下的内容不会被上传到远程仓库,那么这样的话就不能被其他人使用这个hook,因此我们可以借用其他代码工具来生成本地的hook,因为代码是可以上传到远程仓库的,比如JavaScript通过husky来生成本地hook。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

. . . . .

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值