【问题标题】:Clone git repository without history?克隆没有历史记录的 git 存储库?
【发布时间】:2015-05-02 10:41:09
【问题描述】:

我想要从 github 克隆存储库。它有很多历史,所以我想要没有任何历史的克隆。

是否可以在没有历史记录的情况下克隆 git 存储库?

【问题讨论】:

标签: git


【解决方案1】:

您可以使用值为 1 的 --depth 选项获得浅克隆

git clone --depth 1 reponame.git

如果您想要更多的提交历史记录,请根据需要增加该值以满足您的需求。

【讨论】:

  • 这不起作用,当您想将其镜像到另一个存储库时,您仍然可以获得历史记录
【解决方案2】:

克隆后,你可以删除.git目录,然后重新初始化git生成一个全新的repo。

$ git clone ...
$ cd path/to/repo
$ rm -rf .git
$ git init

【讨论】:

  • 事实上,这是对这个问题的唯一且完美的答案。没有任何历史记录就无法克隆,但您可以在之后删除历史记录并重新开始。谢谢:)
  • 这不起作用,因为您无法将其镜像到新的存储库,因为您已删除数据库并且它丢失了引用并且无法连接,因此镜像失败跨度>
  • @PositiveGuy 对不起,你是什么意思?也许让我更清楚一点:在删除了$ rm -rf .git 的历史记录后,cmd $ git init 将创建一个没有旧版本的全新回购历史记录,这就是 OP 所期望的。但是,如果您希望在删除历史记录后将 PR 发送到源 repo,那么这不是一个正确的工作流程,因为 git 的 PR 是基于历史记录的(没有历史记录,PR 将有混乱的冲突),即您需要如果您想发送 PR,请将 repo 保持原样。希望能帮助到你。 :)
  • @viery365:下载整个历史记录需要时间,这是 OP 想要避免的。
  • @DanDascalescu 没错,考虑到拉动时间成本,接受的答案会更好。
【解决方案3】:

git clone 中使用--depth 选项:

--深度<depth> 创建一个浅克隆,其历史被截断为指定的修订数。

用法:git clone --depth 1 <remote_repo_url>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 2012-07-03
    • 2015-05-27
    • 2015-05-29
    • 2023-03-31
    • 1970-01-01
    • 2016-10-07
    相关资源
    最近更新 更多