【问题标题】:Get commit that precedes a fork at Github在 Github 上获取分叉之前的提交
【发布时间】:2014-10-30 10:57:09
【问题描述】:

有没有办法在分叉之前获得提交?

就像我们在网络图中一样。

示例:https://github.com/fladson/source/network

fork 之前的提交是3578d5c

有没有办法通过 API 或 git 获得这个?

谢谢

【问题讨论】:

    标签: git github fork commit


    【解决方案1】:

    您可以使用git checkout 从您的历史记录中返回特定的提交。在你的情况下,你会想要:

    git checkout 3578d5c
    

    更新:

    您可以使用github api 通过查询fork 来查找fork 之前的提交。仔细阅读您正在寻找的叉子。每个分叉都包含一个“created_at”时间戳。保存那个时间戳。然后查询在“since”字段中传递“created_at”时间戳的提交。这将返回到创建分叉时的所有提交。

    这是一个将返回提交的 ruby​​ 脚本:https://gist.github.com/magikid/bd4a2286b2d08d7eaf99

    您需要安装 octokit gem (gem install octokit) 才能运行脚本。

    【讨论】:

    • 感谢 magikid 的回复,但我想首先知道在可编程解决方案中哪个提交先于分叉。
    【解决方案2】:

    我认为您无法获得分叉之前的提交。 克隆时,您将克隆整个存储库以及整个历史记录。您看到的“在分叉之前”的提交实际上不是,它只是创建新分支的起点,并且该分支可能在分叉日期后几个月创建:我现在可以在 D 日分叉您的回购你的主人有 100 次提交,然后我在 3 个月内调用 pull 你的分支,我自己没有做任何提交,但是 3 个月后你有 300 次提交,然后我从最新的提交创建一个分支,这是第 300 个.所以第一次提交是在分叉后 3 个月

    【讨论】:

    • 感谢 pomeh,但为了确认这一点来自新分支,我创建了另一个 repo 来证明它不是。看看这里 - github.com/fladson/fork_time_test/network - 当我在 fork 上进行第一次提交时,点开始,没有使用分支。我想我会为此联系 Github。感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 2014-10-29
    相关资源
    最近更新 更多