【问题标题】:Git: can you get the branch a commit was first made in? [duplicate]Git:你能得到第一次提交的分支吗? [复制]
【发布时间】:2014-12-25 13:11:07
【问题描述】:

在我的 master 分支中,有一个错误的提交在某个时候被合并了。有没有可能找出它来自哪个分支?

【问题讨论】:

    标签: git git-branch


    【解决方案1】:

    TL;DR

    是和不是。提交携带祖先历史,但它们实际上并不携带分支信息。此类信息是计算的,而不是作为一流数据存储或传递的。你可能会发现 git-bisect 是一个更好的选择。

    查找包含提交的分支

    您可以使用git branch --contains <commit> 查找包含提交的分支。请参阅https://stackoverflow.com/a/1419637/1301972 以更彻底地处理各种选项,以及在某些情况下可能使用 git-cherry 的一些讨论。

    但是,如果提交是从已删除的分支中合并的,则识别原始源分支的能力将仅限于存储在非快进合并提交中的数据。因此,您的里程会有所不同。

    改用 Git Bisect

    一般来说,如果你有一个错误的提交,你会想看看git-bisect 作为一种隔离有问题的提交的方法。这将允许您对好的和坏的修订进行二进制搜索,并且不依赖于您当前存储库中可能无法访问的源分支信息。

    【讨论】:

      【解决方案2】:

      如果您或多或少知道它发生的时间和地点,这是一个简洁的可视化命令:

      git log --graph --decorate --oneline --all
      

      如果有很多历史并且不知道从哪里开始查找,您的问题之前已在 Finding what branch a commit came from 中得到解答。

      【讨论】:

        猜你喜欢
        • 2013-08-26
        • 1970-01-01
        • 1970-01-01
        • 2017-02-01
        • 2017-08-29
        • 2022-07-01
        • 1970-01-01
        • 2016-11-25
        • 2017-04-14
        相关资源
        最近更新 更多