GitHub fork 以前提交的 repo

Posted

技术标签:

【中文标题】GitHub fork 以前提交的 repo【英文标题】:GitHub fork a repo from previous commit 【发布时间】:2013-10-13 09:03:12 【问题描述】:

我在 GitHub 上找到了一个我想 fork 的存储库 - 但不是当前版本。

我想分叉回购,因为它有很多提交 - 这可能吗?回购没有标记任何版本,所以我不知道如何做到这一点。我显然可以复制该提交中的代码,但我更愿意分叉,因为这样我就可以将链接返回到原始存储库。

【问题讨论】:

为什么不 fork 并从之前的版本创建一个分支? @Frank 我猜是这样......我只想在 master 上工作,因为分支将成为主要版本,而 master 将毫无意义。 我基本上希望我的整个叉子只是分支...... 您可以重命名主分支并创建自己的分支。 ***.com/questions/1526794/… 对你的 repo 做一些奇怪的事情会阻止你稍后拉入上游更改并发送回拉取请求。搞砸这个没什么意义。 【参考方案1】:

您只能 fork 当前存储库。

不过,您可以将分叉存储库的主分支重置为较早的提交,使其看起来就像您当时已经分叉了它。

见:How can I rollback a github repository to a specific commit?

如果您重置每个分支,它会有效地将您的存储库重置为原始存储库的早期状态(与分支无关的数据除外,如配置、挂钩等未重置)。由于可能并非所有分支都包含来自 master 分支的提交,因此您可能需要为每个分支 look up commits by date 以将它们重置为要从中分叉的提交之前的最后一次提交。

【讨论】:

【参考方案2】:

我也无法使用 github 做到这一点,但 Sourcetree 完美地处理了它。

切换到所需的分支。 找到我想要作为新分支负责人的提交并右键单击。 选择“分支”。 我的提交已经被选中。 命名这个新分支,创建并推送。

也可以通过选择“分支”按钮来完成。 然后你选择你想要的提交作为你的新头,给它一个名字,然后创建它。

【讨论】:

branchfork 不同。分支在回购中; forks 是整个 repo 的副本。

以上是关于GitHub fork 以前提交的 repo的主要内容,如果未能解决你的问题,请参考以下文章

GitHub fork 合作开发 - 快速实现版

GitHub上怎么给别人的项目贡献代码

yarn install github repo

npm install and build forked github repo

为旧版本的 repo 发布版本

Github 协同开发