移动到gitolite缺少一些分支
我已经创建了一个新的空gitolite repo,我想将原始git repo的快照(在我的工作站上)推送到其中。我按照说明执行移动到gitolite缺少一些分支,git,gitolite,Git,Gitolite,我已经创建了一个新的空gitolite repo,我想将原始git repo的快照(在我的工作站上)推送到其中。我按照说明执行git-push--all,然后是git-push--tags。这似乎很有效,但我发现一些分支引用没有被推送。在我的工作站上运行git show ref会显示许多类似于refs/remotes/origin/branchXyz的ref,但是直接在gitolite repo上运行git show ref根本不会显示这个分支名称(我希望看到它显示为refs/heads/bra
git-push--all
,然后是git-push--tags
。这似乎很有效,但我发现一些分支引用没有被推送。在我的工作站上运行git show ref
会显示许多类似于refs/remotes/origin/branchXyz
的ref,但是直接在gitolite repo上运行git show ref
根本不会显示这个分支名称(我希望看到它显示为refs/heads/branchXyz
。如何推送其余的分支
谢谢!如果您的本地repo本身是一个克隆(另一个非gitolite repo的'
origin
',它没有本地的所有分支,只引用了远程('origin
')分支
你应该:
(最后一个命令是)
(两个选项也在“”和“”或“”中详细说明)
然后
将--all
推送到新的(gitolite)repo.感谢您的回答,也感谢所有有用的链接。我的印象是,git fetch
拉取了整个存储库的历史记录,因此,我也会有所有远程分支。如果我理解正确,这是错误的;git fetch
只会拉取rem的历史记录注意被跟踪的分支。git clone
是不够的,我还需要做一个git pull--all
,然后才有希望做一个git push--all
。是这样吗?@torngat no,git fetch
也拉所有分支(它们在remotes/origin/heads
),您只是没有跟踪它们,git push——所有的只推跟踪的分支(在refs/heads/
中的分支)。查看git-fetch后的git-branch-a
git-fetch
也拉所有分支:是的,但没有被本地分支跟踪。因此,推到gitolite后出现问题。@VonCgit-remote-update
和git-pull-all
没有明显效果(git-branch
)仍然没有报告除master之外的任何其他本地分支。但是,您建议的另一个命令似乎有效果。但我对这些消息感到困惑。下面是一个示例:分支源/BR_EM_141设置为跟踪本地分支主控器。
这是否意味着我有一个名为BR_EM_141的本地分支正在跟踪master?我想要它可以跟踪远程BR_EM_141。@torngat:这意味着第二个命令没有完全按照预期工作。我已经在我自己的(答案编辑)中替换了一个链接来解释它。
$ 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