【发布时间】:2018-11-27 11:15:52
【问题描述】:
我阅读了很多 SO 帖子,但没有一篇让我了解 git 标签的真正工作原理,尤其是关于它们与分支的链接。我认为这是由于对git原理的误解。也许有人可以帮助我。
假设我有以下两个分支 master 和 develop 与 K 合并提交:
-A-B-C-D-E-F-G-K-L-M (master)
\-H-I-J-/ (develop)
如果我标记J 提交,则此标记将位于两个分支上(因为合并)。
那么当我checkout这个标签时,我会有什么版本呢?包含E,F,G 提交的master 分支或来自develop 分支的提交。不确定我是否清楚我想了解的内容。我知道标签不引用分支,而只是提交。但是签出标签也可以恢复历史提交不是吗?
【问题讨论】:
-
“尤其是关于他们与分支机构的链接” -- 没有这样的链接。
-
“假设我有以下两个分支
master和develop”——一个分支是指向提交的指针。您没有在图中显示两个分支指向的提交。 -
确实,我的图不是很清楚,但是第一行是我的
master分支,第二行是我的develop分支 -
为了更清楚,我的问题是:如果我签出我的标签,我会处于 ABCDHIJ 提交状态还是 ABCDEFGHIJ 状态?
-
我猜你的意思是
master指向M和develop指向J。您应该将这些信息放在图纸中。
标签: git git-branch git-checkout git-tag