返回介绍

branch

发布于 2024-09-16 00:23:11 字数 2369 浏览 0 评论 0 收藏 0

除了 HEAD 外,Git 还有一种引用,叫做 branch(分支)。

你可以把一个 branch 理解为从初始 commit 到 branch 所指向的 当前 commit 之间的所有 commits 的一个「串」。

例如下面这张图:

master 的本质是一个指向 3 的引用,但也可以把 master 理解为是 1 2 3 三个 commit 的「串」,它的起点是 1,终点是 3。

  • 所有的 branch 之间都是平等的。

例如上图 branch1 是 1 2 5 6 的串,而不要理解为 2 5 6 或者 5 6。上图中的 master 和 branch1 之间是平等的。

  • branch 包含了从初始 commit 到它的所有路径,而不是一条路径。

如上图 master 在合并了 branch1 之后,从初始 commit 到 master 有了两条路径。这时,master 的串就包含了 1 2 3 4 7 和 1 2 5 6 7 这两条路径。

创建

如果你想创建 branch ,只需要输入一行 git branch 名称。

git branch feature1

你的 branch 就创建好了:


切换

新建的 branch 并不会自动切换,你的 HEAD 在这时依然是指向 main 的。

你需要用 checkout 来主动切换到你的新 branch 去:

git checkout feature1

git checkout -b 名称 指令可以把上面两步操作合并执行。这行指令可以帮你用指定的名称创建 branch 后,再直接切换过去。

删除

删除 branch 的方法非常简单:git branch -d 名称。

git branch -d feature1

需要说明的有两点:

  • HEAD 指向的 branch 不能删除。如果要删除 HEAD 指向的 branch,需要先用 checkout 把 HEAD 指向其他地方。
  • Git 中的 branch 只是一个引用,所以删除 branch 的操作也只会删掉这个引用,并不会删除任何的 commit。

main/master

main/master 是一个特殊的 branch:它是 Git 的默认 branch(俗称主 branch / 主分支)。

它主要有两个特点:

  • 新创建的 repository 是没有任何 commit 的。但它创建第一个 commit 时,会把 main/master 指向它,并把 HEAD 指向 main/master。
  • 当有人使用 git clone 时,除了从远程仓库把 .git 这个仓库目录下载到工作目录中,还会 checkout main/master。

checkout 的意思就是把某个 commit 作为当前 commit,把 HEAD 移动过去,并把工作目录的文件内容替换成这个 commit 所对应的内容。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文