gitk show“;“未来”;分支机构?

gitk show“;“未来”;分支机构?,git,branch,gitk,Git,Branch,Gitk,如果我使用gitk查看提交对象,它会在分支下列出(在左下窗格中)我可以向上导航到的该分支的所有子级(只要它们不是无名提交,而是实际具有分支名称) 为什么??IMHO这不符合逻辑,也没有用处,因为它违反了事件的时间顺序(thinsg是如何提交到存储库的) 假设我有一棵像这样的树: o分支“左”(提交3) |o分支“右”(提交2) |/ o提交1 | o分支机构“基地” 现在,如果我选择提交1,那么在“分支:”下,我将看到: 分支:左、右 如下:基 这有什么意义?commit 1对象是基本分支的一部

如果我使用gitk查看提交对象,它会在分支下列出(在左下窗格中)我可以向上导航到的该分支的所有子级(只要它们不是无名提交,而是实际具有分支名称)

为什么??IMHO这不符合逻辑,也没有用处,因为它违反了事件的时间顺序(thinsg是如何提交到存储库的)

假设我有一棵像这样的树:

o分支“左”(提交3)
|o分支“右”(提交2)
|/
o提交1
|
o分支机构“基地”

现在,如果我选择提交1,那么在“分支:”下,我将看到:
分支:左、右
如下:基

这有什么意义?commit 1对象是基本分支的一部分,它既不是左分支的一部分,也不是右分支的一部分,这仅仅是因为在创建它时,Left和Right还不存在。因此,以后合并或提交到Left和Right的所有内容都将是Left或Right的一部分,而不是commit 1。那么,commit 1所属的分支如何包括Left和Right呢

有人请解释一下我在这里遗漏了什么,因为来自ClearCase的背景对我来说毫无意义


谢谢

多亏了这些信息,您知道在所选提交中引入的更改包含在所有分支中

我可以想到我想知道提交应用于哪些分支的情况(或者,如果给定的分支包括所选的提交)。您可以始终遵循gitk中的行,但对于长分支来说,这可能会很麻烦


有时,我想做相反的事情,选择一个提交,看看是否有另一个以前的提交应用于此。据我所知,没有切实可行的方法可以做到这一点,因此选择另一个先前的提交并检查“分支”字段是一个很好的替代方法。

由于有了这些信息,您知道在所选提交中引入的更改包含在所有在此处显示的分支中

我可以想到我想知道提交应用于哪些分支的情况(或者,如果给定的分支包括所选的提交)。您可以始终遵循gitk中的行,但对于长分支来说,这可能会很麻烦


有时,我想做相反的事情,选择一个提交,看看是否有另一个以前的提交应用于此。据我所知,没有实际的方法可以做到这一点,因此选择前面的另一个提交并检查“branchs”字段是一个很好的替代方法。

Git有一个更匿名的分支模型(不要与匿名分支混淆,Git没有这些分支),这样,提交就不会与分支永久关联(有时分支名称进入合并消息,但这更像是一种约定)。git中的分支是一个分支标签,它随着新的提交向前移动,但提交中没有关于创建它的分支的信息


在您的示例中,
commit1
与任何分支都没有直接关联,但前一个分支位于
base
上,两个升序提交位于
左侧
右侧

Git有一个更匿名的分支模型(不要与匿名分支混淆,Git没有这些分支)这样,提交就不会与分支永久关联(有时分支名称会进入合并消息,但这更像是一种约定)。git中的分支是一个分支标签,它会随着新的提交向前移动,但提交中没有关于创建它的分支的信息


在您的示例中,
commit1
与任何分支都没有直接关联,但前一个分支位于
base
上,两个升序提交位于
左侧
右侧
,您看到的这一点有点错误。commit1提交不是基本分支的一部分。在git中,分支是对c的简单引用ommit对象。然后分支的历史记录被描述为“所有提交均可从中访问”。因此,commit1可从左侧和右侧访问,但不能从底部访问


如果您要
git checkout base&&git checkout-b feature2
,那么您的新feature2分支将不包括commit1。git不跟踪分支创建-如果您想记录您可以添加标记或使用
git mergebase Left Right
,这将告诉您可以从两个分支(在本例中为commit1)访问的第一个提交.

您的看法有点错误。commit1提交不是基本分支的一部分。在git中,分支是提交对象的简单引用。然后,分支的历史记录被描述为“所有提交均可从中访问”。因此,commit1可从左侧和右侧访问,但不能从基本分支访问


如果您要
git checkout base&&git checkout-b feature2
,那么您的新feature2分支将不包括commit1。git不跟踪分支创建-如果您想记录您可以添加标记或使用
git mergebase Left Right
,这将告诉您可以从两个分支(在本例中为commit1)访问的第一个提交.

首先-感谢您的回答。好的,我明白您的意思,但在这种情况下,我如何才能看到相反的信息,即分支的起点是什么?换句话说,如果我再合并两个提交(4和5)在左上方,是什么告诉我提交3、4和5都是左分支的一部分?是的,我可以从视觉上找到它,但是如果在提交4之前没有创建左分支,或者如果它是在提交1或基础的同一级别创建的呢?@Alan:在你描述的情况下,提交3、4和5仍然会将左分支列为它们所在的分支。它不管它是从哪里创建的,不管给定的提交是否是其历史的一部分。@Alan:正如Jefromi所说,新分支从哪里开始真的很重要吗?创建提交时是否存在分支并不重要