0

我正在查看我贡献的存储库,手动浏览提交历史记录,我看到“打开”(未合并)分支。例如,分支my-branch是“未合并的”,因为此命令:

$ git log $(git merge-base origin/master origin/my-branch)..origin/my-branch

my-branch显示未合并的提交。所以我把它当作一个未合并的分支。另一位贡献者说,“不,它已经被合并了,使用 squash。” 果然,如果我查看分支列表(它托管在 Bitbucket),它不会出现在列表中。它不会出现在“活动”列表中,也不会出现在“合并”列表中。

据 Bitbucket 称,因此它已被合并、关闭或其他。(但它仍然存在于来自 Bitbucket 的克隆中。)这是 Bitbucket 的一项功能——它以某种方式跟踪通过其接口完成的 squash 合并?它是一个git特征,是“主动”的概念吗?这是什么意思?

更新:根据 Bitbucket 关于 squash 功能的博客条目,该功能不适用于 Mercurial,因为在 Mercurial 中它需要“过时标记”(大概是将压缩的提交标记为过时?)。git有自己的版本吗?

4

1 回答 1

0

如果一个分支的提交不属于主分支,则该分支被列为“活动”。如果一个分支没有任何不在主分支上的提交,则该分支被列为“合并”。如果一个分支根本没有列出,那么它要么尚未被推送到 Bitbucket,要么已Bitbucket UI 中被删除。

分支列表并不真正关心合并给定分支时是否存在压缩或快速转发。它只关心分支是否被删除,以及分支的头部或尖端是否有不在主分支上的提交。

于 2018-08-24T20:11:48.480 回答