【问题标题】:git branch unmerged but not "active" on Bitbucketgit 分支未合并但在 Bitbucket 上未“活动”
【发布时间】:2018-08-24 14:35:36
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • git merge squashGIT feature.
  • 对,这是git 功能。但是 Bitbucket 如何知道压缩的合并不是“活动的”? git 也知道吗?
  • 我不知道“活跃”是什么意思。我猜这是一些bitbucket hoodo?!在 GIT 中,分支就是分支。压扁的分支不会被合并,提交只会被挑选出来。我不太确定你在问什么?
  • 这里是关于壁球的解释blog.github.com/2016-04-01-squash-your-commits
  • Git 没有过时标记(这些是 Mercurial Evolve 扩展功能)。 Bitbucket 定义“活动”/“不活动”,因此他们可以弥补它的含义,您可能应该完全忽略它。 :-) 如果它就像 GitHub 对“活跃”的定义,它只是意味着“提示提交并不是那么旧”,这只是一个稍微有用的措施。

标签: git bitbucket bitbucket-cloud


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 2017-04-17
    • 2011-10-16
    • 2012-08-29
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多