git - 如何在没有提交历史的情况下制作可见的 github fork?
问题描述
假设您想将旧的(GitHub)存储库A克隆到您自己的存储库B中。但是,您不需要任何分支,也不需要很长的提交历史。你想要的是一个浅层克隆,作为仓库最新状态的快照。最好只使用最新的提交消息,同时仍然显示A
它是从哪个点分叉的。这在 GitHubInsights > Network
选项卡中以图形方式显示,箭头从一个用户回购到另一个。
问题是到目前为止我尝试过的解决方案,最终都在 GitHub图表中出现了差距。Network
这可能是因为它们都依赖于删除/恢复.git
或强制推送,这似乎会导致 GitHub UI 断开克隆/分叉,而最终看起来像这样:
我不确定如何最好地表达这个问题,因为已经有几十个听起来非常相似,如果不一样的话,而他们似乎都没有解决这个问题,如果可能的话。
所以问题是:
如何在 GitHubNetwork
图表中保留 forks 依赖项,同时仍删除大部分提交历史记录?
(我知道我无法删除整个历史记录并且仍然在图表中连接了一些东西,但是不应该以这样一种方式压缩分叉,使所有提交A
都变成一个压缩提交(从叉子),而所有新的B
都是正常的?)
我已经查看了这些答案,但它们并没有太大帮助:
解决方案
我认为正确的答案是:
- 如果您以任何方式修改您自己的分叉 ( ) 的分叉前历史,则该图将与分叉断开。
Repo-B
Repo-A
Insights > Network
- 您的GitHub fork 仍将显示它是从
Repo-A
. - 如果您不想使用历史悠久的分叉,则:
- 创建一个压缩历史的新分支。
- 使用 GitHubs UI创建 fork ,然后压缩历史记录(或用浅克隆替换内容。)
推荐阅读
- c# - 如何读取 XML 文档并将其值附加到组合框和文本框
- apache-kafka - 具有多个应用程序实例的 Kafka 流
- sql - SQL查询如何获得两个结果之间的时差
- python - 我可以轻松地将列表从 Node 传递到 python 吗?
- three.js - ThreeJS GLTF 导出器和人脸 Materialindex
- android-studio - 无法将 Flutter 项目迁移到 AndroidX
- angular - ngFor 不打印对象数据
- pytorch - 如何将上一个时间步的输出与输入一起馈送到 pytorch 中的下一个 rnn 单元?
- php - PHP修复了isset问题,但它说我不能使用它
- python - 为什么我总是像班级预测的那样得到“1”?