Git 分支基本使用
date
Oct 18, 2024
AI 摘要
Git 分支允许开发者在独立的线路上进行开发,支持创建、切换、合并和删除分支。合并有快速合并和提交合并两种方式,变基用于重写历史。标签用于标记重要提交,游离分支可用于查看特定版本的代码。
slug
git-basic-use-branch
status
Published
tags
github
summary
Git 分支允许开发者在独立的线路上进行开发,支持创建、切换、合并和删除分支。合并有快速合并和提交合并两种方式,变基用于重写历史。标签用于标记重要提交,游离分支可用于查看特定版本的代码。
type
Post
1、分支的概念#
分支是 git 的一个重要特性,它可以让开发人员从主线上分离出来,在一个独立的线路上继续开发,最后可以灵活的选择合并分支,还是丢弃分支。用一个生活中的例子,来理解分支:

2、创建与切换分支#
● 使用git branch xxx可以创建分支,其中xxx是分支名字

● 使用git branch可以查看所有分支

● 使用git checkout xxx可以切换分支

● 注意点如下: ① 切换分支前,最好把当前分支管理好,即最好进行:add、commit操作。 ② 切换分支后,工作区、暂存区、会受到影响,具体为:
● 工作区:会变为切换到的分支的最后一次提交的状态
● 暂存区:同上,且如果暂存区有未提交的更改,那这些更改会被带到新分支的暂存区上。
比如:在 test 分支对 x 文件进行了暂存,没提交,随后切换到 master 分支时,x 文件会自动加在 master 分支的暂存区
3、合并分支(快速合并)
例如我们有 master 和 test 两个分支,test 分支是领先于 master 分支的,且 tets 分支包含 master 的所有历史记录,那么这时就可以触发 git 的快速合并,具体演示如下:
- 第一步:创建 a、b 两个文件,随后提交到 master 分支。

- 第二步:创建 test 分支,随后在 test 分支创建一个 c 文件,随后提交到 test 分支。

- 第三步:切回 master 分支 此时发现工作区中 c 文件消失(因为 master 分支中没有 c 文件)。

- 第四步:把 test 分支合并到 master 分支 使用git merge test合并分支,合并成功后,会发现工作区中已经有了 c 文件,且可以查看到 c 文件的提交记录。

4、合并分支(提交合并)#
场景描述:当进行分支合并时,若两个分支有不一致的版本,则会提示输提示输入提交信息,在当前分支形成一个新的提交记录,具体场景请执行上述15.3的前三步,然后接下来执行下面步骤:
第一步:切到 master 分支后,创建 d 文件,随后提交到 master 分支。

第二步:在 master 分支中合并 test 分支 输入git merge test命令,进行分支合并

出现如下提示,含义是本次分支合并,存在不一样的版本,请为生成的新版本编写说明

输入完说明后,保存并退出随后提示合并完毕,随后提示合并完毕

5、删除分支#
● git branch -d xxx可用于删除一个分支,其中xxx是分支名,例如我们删除 test 分支:

● 若删除时提示下图,说明:要删除的分支包含了一些尚未合并到其他分支的内容。

解决办法有三种:
6、分支变基#
在 Git 中,合并(merge)和变基(rebase)都是用于整合来自不同分支的更改的操作,它们区别如下:
● 合并(merge): 将两个分支的历史合并在一起,gti 会创建一个新的“合并提交”,所有的分支和合并点都会被保留在历史中,有完整的历史记录。

● 变基(rebase) 将一个分支(test)上的提交重新应用到另一个分支(master)上,变基会重写项目历史,因为它实际上是在创建一系列新的提交,会产生一个更线性的历史记录,看起来更干净、更简单。

7、tag(标签)#
在Git中,标签(Tag)是用来指向特定提交的引用,通常用于标记项目中的重要点,比如版本发布。标签分为两种类型:
- 轻量标签(Lightweight) 轻量标签只是简单地指向一个提交,不包含其他信息,创建轻量标签不会存储任何额外的信息。
- 附注标签(Annotated) 附注标签存储了额外的信息,例如:标签名、标签信息、创建者名字、电子邮件、创建日期等。因为它们包含了更多的信息,附注标签更适用于公共或正式发布的场合,比如软件版本的发布。 创建标签
命令 | 作用 |
git tag 标签名 版本号 | 给指定提交打 轻量标签 |
git tag -a 标签名 版本号 -m “标签描述” | 给指定提交打 附注标签 |
上述两个命令可以不写版本号,不写就是给最新提交打标签 | ㅤ |
git tag | 查看标签 |
git show 标签名 | 查看标签信息 |
git tag -d 标签名 | 删除标签 |
8、游离分支#
git checkout也可以将代码签出到指定版本,即可以执行git checkout 具体版本号,当签出到指定版本时,签出的代码出于一个游离分支中,如下图操作:

游离分支上可以对代码进行版本控制,但要注意:一旦从游离分支切走,游离分支的提交不会交给任何一个分支,所以对于游离分支我们的原则是: