我在git push --mirror
取得了巨大的成功,可以将备份副本发送到裸机库。但在搜索SO和其他地方之后,我找不到用所有分支在本地克隆该东西的方法。我不想使用git clone
因为我不希望我的本地回购了解裸露的回购。如果我使用git pull
,它只会关闭HEAD分支。
猜测:
git pull /data/Dropbox/backup/that_stuff.git *
当然,让我无处可去。
如何让所有分支机构重新获得整个仓库?我意识到我可能只是将裸仓库复制到我的.git目录,但这似乎是一个坏主意。
答案 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