我已经创建了一个新的空的gitolite repo,我想在其中推送我原来的git repo的快照(在我的工作站上)。我按照说明操作git push --all
,后跟git push --tags
。这似乎工作得很好,但我发现一些分支引用没有得到推动。在我的工作站上运行git show-ref
会显示排序refs/remotes/origin/branchXyz
的多个引用,但直接在gitolite repo上执行git show-ref
根本不会显示此分支名称(我希望看到它)显示为refs/heads/branchXyz
。如何推动剩余的分支?
谢谢!
答案 0 :(得分:2)
如果您的本地仓库本身是一个克隆('origin
',另一个非gitolite repo),它没有所有分支本地,只引用遥控器( 'origin
')分支。
你应该first pull all branches or track them all:
$ git remote update
$ git pull --all
# or:
remote=origin ; for brname in `git branch -r | grep $remote | grep -v master | grep -v HEAD | awk '{gsub(/[^\/]+\//,"",$1); print $1}'`; do git branch --set-upstream $brname $remote/$brname ; done
(最后一个命令是detailed here)
(两个选项也在“Track all remote git branches as local branches”和“Can “git pull --all
” update all my local branches?”或“How do I clone all remote branches with Git?”中详细说明了
然后push --all
到您的新(gitolite)upstream回购。