首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从检出的Git分支中查找“parent”分支的可靠方法

从检出的Git分支中查找“parent”分支的可靠方法
EN

Stack Overflow用户
提问于 2019-09-02 19:43:37
回答 1查看 133关注 0票数 1

我们的工作流中有3种类型的分支--主分支、发布分支和热修复分支。发布分支由master组成,hotfix分支由发布分支组成。

我想知道我的hotfix分支来自哪个发布分支,也就是说,用户运行git co -b release_0.1.4_hotfix (答案是release_0.1.4)时在哪个分支上。如果我可以计算出起始分支,我就可以在我的分支之间做一个git比较,然后在正确的发布分支上实现我的热修复。我们的CI系统知道热修复分支名称,并将其作为环境变量提供给bash脚本。

复杂的是,git代码库还有其他标记&分支提交,所以我需要过滤掉不相关的分支。

我研究了很多问题,包括How to find the nearest parent of a Git branch?Finding the original parent branch of a git branch without knowing which ones to choose from,并尝试了各种git命令。我得到的最接近的是创建一个自定义日志,输出refs,只包括来自refs/remotes的远程分支,并排除已知的热修复分支。这会返回我想要的原始发布分支,但也会返回另一个不相关的分支。

git log --format=%d --decorate --decorate-refs="refs/remotes" --decorate-refs-exclude="refs/remotes/origin/release_0.1.4_hotfix"

返回:

代码语言:javascript
复制
 (origin/release_0.1.4, origin/Some_other_branch)

我不是百分之百确定origin/Some_other_branch是从哪里来的。我假设这个提交在某个时候是在另一个分支上。也许提交是精心挑选的?

在剩下的两个分支中,有没有办法进一步改进结果?我想知道关于git log reflog-walkgit log reflog-grep的事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-09 18:08:29

在这种情况下,我认为使用Git不可能可靠地区分哪个分支是“父”分支。

(我确实使用我们的代码管理工具Phabricator找到了这个问题的解决方案。正如在此file中所暗示的,Arcanist记录了你在refs数组的'onto‘键下推送的分支的远程跟踪分支。通过正确设置上游分支,我能够查询Phabricator API,并检索分支名称和'onto‘分支。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57756371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档