我在使用 git push --mirror
将备份副本制作到裸仓库中取得了巨大成功。但是在 SO 和其他地方搜索之后,我找不到用所有分支在本地克隆东西的方法。我不想使用 git clone
因为我不想我的本地 repo 了解裸 repo 。如果我使用 git pull
它只会关闭 HEAD 分支。
猜测:
git pull /data/Dropbox/backup/that_stuff.git *
当然,我无处可去。
我如何重新获取包含所有分支的整个存储库?我意识到我可能只是将裸存储库复制到我的 .git 目录,但这似乎是个坏主意。
最佳答案
尝试 git fetch
而不是 git pull
自 git pull
在那里获取分支并将其 merge 到本地分支,尝试将所有远程分支 merge 到本地分支没有多大意义。
$ 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/*
有效。
关于git - `git push --mirror` 的对面?我如何取回我的 repo 协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2213689/