搬到gitolite缺少一些分支机构

时间:2012-06-01 14:55:43

标签: git gitolite

我已经创建了一个新的空的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。如何推动剩余的分支?

谢谢!

1 个答案:

答案 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回购。