与`git push --mirror`相反?我如何收回我的回购?

时间:2010-02-06 15:58:34

标签: git pull

我在git push --mirror取得了巨大的成功,可以将备份副本发送到裸机库。但在搜索SO和其他地方之后,我找不到用所有分支在本地克隆该东西的方法。我不想使用git clone因为我不希望我的本地回购了解裸露的回购。如果我使用git pull,它只会关闭HEAD分支。

猜测:

git pull /data/Dropbox/backup/that_stuff.git *
当然,

让我无处可去。

如何让所有分支机构重新获得整个仓库?我意识到我可能只是将裸仓库复制到我的.git目录,但这似乎是一个坏主意。

3 个答案:

答案 0 :(得分:2)

尝试git fetch而不是git pull

由于git pull用于获取分支并将其合并到本地分支,因此尝试将所有远程分支合并到本地分支时会有很多意义。< / p>

$ git fetch a-repo_url

以上命令从远程refs/heads/命名空间复制所有分支并将它们存储到本地refs/remotes/remoteRpo/命名空间,除非使用branch.<name>.fetch选项指定非默认命名空间的Refspec。即可。
尝试:

$ git fetch a-repo-url +refs/heads/*:refs/heads/*

可以强行取得所有分支的所有头部 请参阅此SO question


OP yar报告:

git pull /data/Dropbox/backup/mjdj.git/ +refs/heads/*:refs/heads/*

作品。

答案 1 :(得分:1)

还有(现在?)git clone --mirror。但是男人说:

   --mirror
       Set up a mirror of the remote repository. This implies --bare.

https://git.wiki.kernel.org/index.php/GitFaq#How_do_I_clone_a_repository_with_all_remotely_tracked_branches.3F描述了如何将裸仓库转为非裸仓。

答案 2 :(得分:-1)

您可以使用git-copy实现此目的。

git copy /data/Dropbox/backup/that_stuff.git that_stuff.git