如何在没有提交历史记录的情况下创建一个可见的 github 分支?
How to make a visible github fork without the commit history?
假设您要将旧的 (GitHub) 存储库 A 克隆到您自己的存储库 B 中。但是,您不需要任何分支,也不想要很长的提交历史记录。您想要的是 shallow 克隆作为 repo 最新状态的 snapshot。最好只使用最新的提交消息,同时仍然显示它是从 A
中的哪个点分叉的。这在 GitHubs Insights > Network
选项卡中以图形方式显示,箭头从一个用户回购到另一个。
问题是到目前为止我尝试过的所有解决方案最终都会在 GitHub Network
图表中形成一个 差距 。这可能是因为它们都依赖于 removing/restoring .git
或 force 推动,这似乎导致 GitHub UI 断开连接clone/fork,但它最终看起来像这样:
我不确定如何最好地表达这个问题,因为已经有几十个听起来非常相似,即使不一样,而 none 似乎解决了这个问题,如果可能的话.
所以问题是:
如何在 GitHub 的 Network
图表中保持分叉依赖,同时仍然删除大部分提交历史记录?
(我知道我无法删除 整个 历史记录并且仍然有 something 在图表中连接,但不应该有可能以这样的方式压缩 fork,即 A
中的所有提交都变成 one 压缩提交(从 fork 中看到),而 [= =17=]正常吗?)
我看过这些答案,但它们没有太大帮助:
- How to handle big repositories with Git - 看起来很有希望,但没有任何细节
- How do I update a GitHub forked repository?
- Sync a fork of a repository to keep it up-to-date with the upstream repository.
- How can I keep my fork in sync without adding a separate remote?
这些行是直接从 git 历史记录中生成的。如果没有分叉(或提交)的历史记录,则不会有行。
总之,想要线路,需要fork。
我认为正确的答案是:
- 如果你修改
Repo-A
的你自己的fork(Repo-B
)的pre-fork历史在任何方式中,Insights > Network
图形 将从分叉中断开。
- 您的 GitHub 分支仍将显示它是从
Repo-A
分支而来的。
- 如果您不想使用具有如此悠久历史的叉子,则:
- 创建一个新的分支,历史被压缩。
- 使用 GitHubs UI 进行分叉,然后 squash 历史记录(或将内容替换为浅层 克隆。)
假设您要将旧的 (GitHub) 存储库 A 克隆到您自己的存储库 B 中。但是,您不需要任何分支,也不想要很长的提交历史记录。您想要的是 shallow 克隆作为 repo 最新状态的 snapshot。最好只使用最新的提交消息,同时仍然显示它是从 A
中的哪个点分叉的。这在 GitHubs Insights > Network
选项卡中以图形方式显示,箭头从一个用户回购到另一个。
问题是到目前为止我尝试过的所有解决方案最终都会在 GitHub Network
图表中形成一个 差距 。这可能是因为它们都依赖于 removing/restoring .git
或 force 推动,这似乎导致 GitHub UI 断开连接clone/fork,但它最终看起来像这样:
我不确定如何最好地表达这个问题,因为已经有几十个听起来非常相似,即使不一样,而 none 似乎解决了这个问题,如果可能的话.
所以问题是:
如何在 GitHub 的 Network
图表中保持分叉依赖,同时仍然删除大部分提交历史记录?
(我知道我无法删除 整个 历史记录并且仍然有 something 在图表中连接,但不应该有可能以这样的方式压缩 fork,即 A
中的所有提交都变成 one 压缩提交(从 fork 中看到),而 [= =17=]正常吗?)
我看过这些答案,但它们没有太大帮助:
- How to handle big repositories with Git - 看起来很有希望,但没有任何细节
- How do I update a GitHub forked repository?
- Sync a fork of a repository to keep it up-to-date with the upstream repository.
- How can I keep my fork in sync without adding a separate remote?
这些行是直接从 git 历史记录中生成的。如果没有分叉(或提交)的历史记录,则不会有行。
总之,想要线路,需要fork。
我认为正确的答案是:
- 如果你修改
Repo-A
的你自己的fork(Repo-B
)的pre-fork历史在任何方式中,Insights > Network
图形 将从分叉中断开。 - 您的 GitHub 分支仍将显示它是从
Repo-A
分支而来的。 - 如果您不想使用具有如此悠久历史的叉子,则:
- 创建一个新的分支,历史被压缩。
- 使用 GitHubs UI 进行分叉,然后 squash 历史记录(或将内容替换为浅层 克隆。)