【问题标题】:How do I clone a git repository to a new project?如何将 git 存储库克隆到新项目?
【发布时间】:2012-08-23 15:34:51
【问题描述】:

例如,我想使用一些位于 Github 上的框架。有没有办法克隆没有.git 结构的存储库?这样我就可以添加新的远程 url 并适当地推送到我自己的存储库?

编辑

这样做的目的是让我可以从 Github 中取出一个框架并将其放入我自己全新的存储库中,而无需从框架的存储库中导入任何 git 数据(如 git 日志)。我知道您可以克隆和删除适当的数据,或者您可以使用 Github 的工具下载一个 tarball,但我只是想知道是否有更简单的方法,例如 git clone,最好是单个命令。

【问题讨论】:

  • 根据您对我已删除问题的评论,我不明白您的问题。为什么不想要 .git 结构?你为什么不想使用叉子?提供更多详细信息。
  • 我想将存储库导入为我自己的“干净”存储库。有点像从头开始使用您使用的框架。显然,您不想导入它包含的 git 日志。这样,您就可以从一个全新的 git 存储库开始,其中包含您想要使用的框架。我只是想问是否有更简单的方法来做 git clone 而不是自己用 rm 做。

标签: git


【解决方案1】:

如果你只想要 repo 的最新内容,没有任何 git 信息,那么 tarball 是最好的解决方案,并且可以使用单个命令行完成:

curl -L https://github.com/username/reponame/tarball/master | tar zx

wget --no-check-certificate https://github.com/username/reponame/tarball/master -O - | tar xz

即使在 Windows 上,您也可以使用来自 GoW (Gnu On Windows) 的类 unix 命令来执行此操作。

这将允许您将该新目录添加为您自己的目录。

注意:最好使用子模块,但这不是您具体要求的。


OP Steven Lu 在 cmets 中添加:

我猜这适用于 Github,但如果 repo 不是由 Github 托管,你会怎么做?

对于任何其他 repo,您​​可以使用命令 git archive --remote,如“git archive command with bitbucket”所示:

例如:

git archive --remote=ssh://git@bitbucket.org/username/reponame.git --format=tar --output="file.tar" master

【讨论】:

  • 我猜这适用于 Github,但如果 repo 不是由 Github 托管,你会怎么做?
  • @StevenLu git archive --remote:见stackoverflow.com/questions/12071070/…
  • @StevenLu 我在答案中包含了替代解决方案以获得更多可见性。
【解决方案2】:

如何在不修改历史记录的情况下进行快速克隆?

git clone --depth 1 your_repo_url

来源:https://git.wiki.kernel.org/index.php/GitFaq#How_do_I_do_a_quick_clone_without_history_revisions.3F

【讨论】:

  • 我不能确定,但​​我认为没有 .git 就没有 git 方式 @VonC 指出您可以通过 github 方式下载存档。
猜你喜欢
  • 2016-08-15
  • 2022-07-15
  • 2013-11-06
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
相关资源
最近更新 更多