Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
移动到gitolite缺少一些分支_Git_Gitolite - Fatal编程技术网

移动到gitolite缺少一些分支

移动到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

我已经创建了一个新的空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/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后出现问题。@VonC
git-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