Github入门3 - 分支基础(与merge冲突时的解决方案)

本文详细介绍了Git的分支操作,包括创建、查看、切换、删除和合并分支。强调了在执行`git checkout`和`git merge`时需要注意的事项,以及如何处理分支冲突。同时,探讨了实际工作中遇到的分支应用场景,如紧急修复分支的创建与合并。
摘要由CSDN通过智能技术生成

[原文链接:Link] 转载请注明原作者

感谢guapi的指导与纠错


🌿Git 分支基础

区别于3种对象,分支(branch)逻辑上是一个版本队列(Queue)
只不过其本质只是一个 指针 (head)

这个指针可以被称为 **头指针(head)**其是活动的,永远指着它 ※最新※ 的commit对象 (的hash key)。

本地commit更新到第几个了,branch的head就指向它。

此外还有一个本地项目当前的 HEAD 指针,区别于各个 branches 的 head

其指向当前工作中的 branch
另一层含义: 每次 commit 时,HEAD 带着本地当前 branch 的 head 往前走

branch 被 ./.git/ 中的两块内容来管辖,分别是 HEAD 文件refs 目录

  • Git 系统层级:

    • branch > commitObj > TreeObj > BlobObj
  • .git 目录结构补充

    • hooks:
    • info:
    • logs: 存着 $ git log 所显示的内容,也就是commit和branch记录
    • objects: 存对象 (hash-object) 的数据库 (也就是版本库,本地Repo)
    • refs: 存着每个 branch 指向 commit 对象的指针(就是存着它最新commit对象的hash值)
    • COMMIT_EDITMSG:
    • config:
    • description:
    • FETCH_HEAD:
    • HEAD: 存着当前使用中的分支(就是存着上面👆 refs的路径,key=branchName,val=path)
    • index: 当前暂存区内容

🎐Git branch 初见

通过 $ git log --oneline 可查看commit和branch记录,大体为下:

08cb1a3 (HEAD -> newbranch) third commit
ad82e41 second commit
ab3b82f (master) first commit

上段表明当前 HEAD指针 指向了 newbranch 分支的最新 commit 上,

而 newbranch 领先了 master 主分支 2个 commits (主分支还停在 first commmit)

若现在进行更新,则默认把新 commit 分配给 HEAD 也就是 newbranch 分支中。

b93aaf9 (HEAD -> master, newbranch) second commit
ab3b82f first commit

上段表明当前 HEAD指针 指向了 master 分支的最新 commit 上,

而 newbranch 和 master 主分支目前版本相同

若现在进行更新,则默认把新 commit 分配给 HEAD 也就是 master 分支中。

b93aaf9 (HEAD -> newbranch, master) second commit
ab3b82f first commit

上段表明当前 HEAD指针 指向了 newbranch 分支的最新 commit 上,

而 newbranch 和 master 主分支

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值