7

我在git push --mirror将备份副本复制到裸仓库方面取得了巨大成功。但是在 SO 和其他地方搜索之后,我找不到在本地克隆所有分支的方法。我不想使用git clone,因为我不希望我的本地仓库知道裸仓库。如果我使用git pull它只会降低 HEAD 分支。

猜测:

git pull /data/Dropbox/backup/that_stuff.git *

让我无处可去,当然。

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

4

3 回答 3

2

尝试git fetch代替git pull

由于git pull可以获取分支并将其合并到本地分支,因此尝试将所有远程分支合并到本地分支没有多大意义。

$ git fetch a-repo_url

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

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

可以强制获取所有分支的所有头。
请参阅这个SO 问题


OP yar报告:

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

作品。

于 2010-02-06T16:27:08.390 回答
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描述了如何将裸仓库变成非裸仓库。

于 2010-12-26T20:11:59.473 回答
-1

您可以使用git-copy来实现这一点。

git copy /data/Dropbox/backup/that_stuff.git that_stuff.git
于 2015-03-26T15:39:37.043 回答