【问题标题】:How to find out what shared branch my feature branch was branched from如何找出我的功能分支是从哪个共享分支分支出来的
【发布时间】:2019-04-30 15:12:40
【问题描述】:

在我们的项目中很常见的是,我们想要恢复这些有点旧的分支,但我们不确定它们是从哪个共享分支分支出来的。

因此,尝试用尽可能具体的术语提出问题:

  1. 我可以识别一小组“共享分支”
  2. 我有一个特定的功能分支 F

是否有一个不错的工具(最好是 GUI)可以让我轻松识别共享分支 F 是从哪个分支分支出来的?

【问题讨论】:

  • 分支实际上没有父分支。该信息不可用,并且一般无法计算(尽管在许多特定情况下有一个明显的候选者)。另请参阅Find the parent branch of a Git branch
  • 在这方面cut from是什么意思?分支点?
  • @torek 我创建新分支时所在的分支。
  • DaBlick:我想你是想把这个问题告诉@berkes。无论如何,Git 并没有正式将这些信息保存在任何地方。 reflogs 确实有足够的信息将其拼凑在一起一段时间,直到具有该信息的 reflog 条目过期,但即使这只是猜测,因为您可以运行 git branch foo a123456 这使得新分支 foo 指向提交 @987654324 @不管你当前的提交/分支。
  • 您能分享更多有关您的布局的信息吗?例如。你们共享的分支是否有共同的父母,或者他们是完全独立的?如果他们有共同的父母(通常是这种情况),他们是在某个时候相互合并还是只是在某个时候分叉而不再见面?

标签: git atlassian-sourcetree smartgit


【解决方案1】:

git log --graph --oneline <branchname> 应该会显示<branchname> 及其分支点的历史记录。

【讨论】:

  • 谢谢,但我发现很难确定这个分支是从输出中删除的那个分支。我希望有更好的东西。我很容易在我的第一次提交“之前”确定提交。也许提出问题的另一种方式是我如何确定哪些分支在其历史记录中包含该提交?这实际上更接近我想要的: git for-each-ref --contains
猜你喜欢
  • 2017-06-21
  • 2021-07-24
  • 2011-06-15
  • 2017-07-04
  • 2013-08-06
  • 2010-09-15
  • 2014-12-28
  • 2015-06-03
  • 2021-10-20
相关资源
最近更新 更多