【问题标题】:Git track how a commit got into a branchGit 跟踪提交是如何进入分支的
【发布时间】:2014-09-09 17:46:24
【问题描述】:

有没有办法跟踪提交是如何进入分支的?我正在使用 git 和 github 企业。

几天前,我遇到了一种情况,提交似乎已从功能分支 ("f") 进入我们的第一个暂存分支 ("s em>"),这是预期的(我的同事合并了一个 PR 来做到这一点)。我们在 master 之前有一个二级暂存分支(“t”),不知何故,有问题的提交在没有来自 f的拉取请求的情况下进入 t >。我只能假设,与我们通常的工作流程相反,代码以某种方式从 s 合并到 t,可能是通过其他一些功能分支。我想追踪有问题的提交所采用的路径。

我启动gitk 试图弄清楚,但我遇到的问题是我发现网络图难以理解。有没有办法跟踪这个提交的路径,或者使用gitk以外的其他工具,或者你能教育我(或指向一个好的资源)来理解 gitk 的图表吗?

【问题讨论】:

    标签: git github version-control github-enterprise


    【解决方案1】:

    你可以使用--ancestry-path来简化gitk图。

    $ gitk offending_commit..HEAD --ancestry-path

    这将仅显示提交 offending_commit 的后代和当前分支的 HEAD 的前身的提交(您可以使用由 .. 分隔的任何两个提交)。

    【讨论】:

    • 谢谢你,我想我以后会用这个。它没有透露答案,但我想也许如果我可以将第一个提交与我的违规提交识别为祖先,我可以用 gitk 解决这个问题。
    • 好的,我做到了,但这仍然是个谜。无论如何,还是谢谢你 - 这绝对看起来应该是解决这个问题的工具,而且你肯定已经用这些知识升级了我的工具集。
    【解决方案2】:

    在您的 GitHub Enterprise 站点中,导航到您的 t 分支以查看受影响的文件。在该文件上,您会看到一个Blame 按钮。单击它并查看列出的所有更改,以了解您知道特定于 s 的更改。

    您应该能够识别该文件受影响区域的提交、用户 ID、时间戳和注释,这可以帮助您确定它是如何到达那里的。

    查看网络,我喜欢SourceTree提供的视图(免费,Windows和Mac)

    【讨论】:

    • 我知道提交是什么以及是谁提交的。我想知道那个提交是如何进入受影响的分支的。
    猜你喜欢
    • 2013-12-05
    • 2016-12-17
    • 2019-07-21
    • 1970-01-01
    • 2013-03-11
    • 2012-03-03
    • 1970-01-01
    • 2019-08-14
    • 2018-11-27
    相关资源
    最近更新 更多