如何只给出.git目录的git项目?

时间:2009-08-22 01:46:25

标签: git github

因此互联网上有人写了大量代码并将其全部存储在github上。有一天,那个人刚刚起来,并且删除了他所有的存储库。值得庆幸的是,他的主要项目有许多分叉,但仍有许多较小的回购没有分叉。但是,我设法使用Github API定期删除所述人的回购,因此拥有所有上述“小项目”的副本。但是,有一个问题:我所拥有的是各个repo的.git目录的内容。

我不清楚如何利用这些.git dirs来有效地分叉它们,从而为相应的回购创建相当完整的镜像。

任何指导?

-m

4 个答案:

答案 0 :(得分:9)

man git

只需使用git clone git://domain.tld/path/to/repos.git

即可

答案 1 :(得分:6)

你试过了吗?

git clone /path/to/repo.git repo

答案 2 :(得分:2)

如果您只想创建一个镜像,可以只是cp -R .git目录。

“只”拥有.git目录并不是问题,因为它包含所有内容。您可以使用.git目录的内容查看历史记录中任何点的完整版本。

如果您正在谈论_why,那么有一个人正在运行一个名为whymirror(http://github.com/whymirror)的帐户,他可能很欣赏这些回购。将克隆到github的方法是:

  1. 在github上创建repo
  2. 进入您的本地仓库,使用git remote add github git@xxx将github地址添加到您的克隆
  3. 使用git push -f github将您的仓库的精确副本发送到github。

答案 3 :(得分:1)

要使用的URL取决于您是否拥有裸仓库。转到您的仓库所在的目录和ls。如果你看到:

HEAD        branches/   description index       logs/       packed-refs svn/
ORIG_HEAD   config      hooks/      info/       objects/    refs/

你有一个简单的回购。相反,如果您只看到.git目录,则不会。

如果你有一个简单的回购,网址file://path/to/repo会查找/path/to/repo.git(至少根据我的经验)。

如果您没有裸仓库,可以使用包含 .git目录的目录的路径