git 常用操作五 - git branch

介绍

每次 git commit 会产生一个提交,每个提交看作是一个节点,多个点连成一条枝干。

git 的命令中有针对单个提交的,也有针对分支操作。(之前几节介绍的命令都是针对单个提交)

当 git 库中存在多条分支时,用 git log --graph ,也可以直观的感受到分支的概念。

如果有可视话工具,如gitg,则更为直观:

图中可以看到两条分支,分支名分别是 master  和 dev_branch 。

概念

可以将分支理解为一系列提交的集合,外加一个分支名。

分支=分支名+提交集合

常用操作

差看分支

可以通过 git branch -a 查看当前库中的分支。

默认分支

在git 库中做第一个提交后,git 会自动创建一个名为 master 的分支。

创建分支

git branch branch_name 来创建新分支。例如:git  branch dev_branch

然后,再通过 git branch -a 查看,可以看到两个分支。

这里要说明一下 [ 当前分支 ] 的概念,图中 master 前面带了一个 * 号,表示当前处在 master 分支上,也意味着后续 git commit 创建的提交(节点)都是在这个分支上的。可以做两个提交实验一下:

先通过 git log 命令,可以观察到,当前两个分支上都只有一个提交,也就是git库中唯一的一个提交:

接下来在 当前分支,也就是 master 分支上创建两个提交:

(touch 命令创建一个文件)

再通过 git log 可以看到  master  分支上有三个提交,dev_branch 上还是只有一个提交

也可以通过 gitg 工具进行观察:

切换当前分支

使用 git checkout branch_name 进行切换当前分支的操作。

假设当前处于 master 分支,那么通过 git checkout dev_branch 可以切换当前分支:

这里需要特别说明:

之前的文章里介绍过 git checkout [commit-id] 命令,是会将当前的 [工作区,暂存区,版本库] 都切到特定的提交。

git checkout [branch_name] 是和 git checkout [commit-id] 完全等价的,也会将当前的 [工作区,暂存区,版本库] 都切到分支名对应的那个的提交。

而分支名对应的提交就是分支头(分支提交链条上的最后一个提交)

因此,也可以将分支名理解成一个提交的标签(TAG),或理解成一个提交的昵称。

 

接下来,再在 dev_branch 上做两个新提交,这样就得到了本文开头的那张图例:

参考资料

https://git-scm.com/docs/user-manual.html#what-is-a-branch

Understanding history: What is a branch?

When we need to be precise, we will use the word "branch" to mean a line of development, and "branch head" (or just "head") to mean a reference to the most recent commit on a branch. In the example above, the branch head named "A" is a pointer to one particular commit, but we refer to the line of three commits leading up to that point as all being part of "branch A".

However, when no confusion will result, we often just use the term "branch" both for branches and for branch heads.

= google translate =

了解历史:什么是分支?
当我们需要精确时,我们将使用“branch”这个词来表示开发线,而“branch head”(或者只是“head”)则表示对分支上最近提交的引用。 在上面的示例中,名为“A”的分支头是指向一个特定提交的指针,但是我们引用导致该点的三个提交行,因为它们都是“分支A”的一部分。

但是,当不会产生混淆时,我们通常只对分支和分支头使用术语“分支”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Zonson9999

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

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

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

打赏作者

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

抵扣说明:

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

余额充值