推送到新远程后分支缺少 refs/heads
missing refs/heads for branches after pushing to new remote
我正在使用以下步骤将存储库从 gitolite 迁移到 bitbucket(本地):
1) 从 gitolite 克隆现有存储库:
git clone git@gitolite.mydomain.com:/hello-world
2) 为 bitbucket 添加新的远程:
git remote add origin-bb ssh://git@bitbucket.mydomain.com:7999/test/hello-world.git
3) 将所有分支推送到新的 bitbucket 源:
git push origin-bb --all
4) 将所有标签推送到新的 bitbucket origin
git push origin-bb --tags
推送成功完成,没有错误。但是,当我使用 git ls-remote -h origin
和 git ls-remote -h origin-bb
比较两个来源之间的引用时,原始遥控器为所有分支列出了 refs/heads,而新遥控器只有 refs/heads/master列出:
git ls-remote -h origin-bb
0079dbeb885c9d88ac200d533930e2e72feb3627 refs/heads/master
git ls-remote -h origin
3215eca2b034d4ee8406bca9b648808fb489c110 refs/heads/hot_fixes
5cfec9cab26d2805064b076d701e53e12ff59c51 refs/heads/develop
61e7efadb6c071f25007dda55ce8c9b73802e1c3 refs/heads/experiment
0079dbeb885c9d88ac200d533930e2e72feb3627 refs/heads/master
这是预期的行为还是在推送到新遥控器时我需要额外的选项以确保包含所有引用?
比较 git ls-remote origin
不是 git ls-remote origin-bb
,而是 git ls-remote .
,即与当前的 repo。我相信您会看到您只有 1 个分支 master
,这就是 git push --all
推送的内容。
首先,您需要将所有分支提取到本地仓库,因为 git clone
仅克隆 1 个分支:
git fetch origin hot_fixes:hot_fixes
git fetch origin experiment:experiment
现在重复 git push --all origin-bb
。
我正在使用以下步骤将存储库从 gitolite 迁移到 bitbucket(本地):
1) 从 gitolite 克隆现有存储库:
git clone git@gitolite.mydomain.com:/hello-world
2) 为 bitbucket 添加新的远程:
git remote add origin-bb ssh://git@bitbucket.mydomain.com:7999/test/hello-world.git
3) 将所有分支推送到新的 bitbucket 源:
git push origin-bb --all
4) 将所有标签推送到新的 bitbucket origin
git push origin-bb --tags
推送成功完成,没有错误。但是,当我使用 git ls-remote -h origin
和 git ls-remote -h origin-bb
比较两个来源之间的引用时,原始遥控器为所有分支列出了 refs/heads,而新遥控器只有 refs/heads/master列出:
git ls-remote -h origin-bb
0079dbeb885c9d88ac200d533930e2e72feb3627 refs/heads/master
git ls-remote -h origin
3215eca2b034d4ee8406bca9b648808fb489c110 refs/heads/hot_fixes
5cfec9cab26d2805064b076d701e53e12ff59c51 refs/heads/develop
61e7efadb6c071f25007dda55ce8c9b73802e1c3 refs/heads/experiment
0079dbeb885c9d88ac200d533930e2e72feb3627 refs/heads/master
这是预期的行为还是在推送到新遥控器时我需要额外的选项以确保包含所有引用?
比较 git ls-remote origin
不是 git ls-remote origin-bb
,而是 git ls-remote .
,即与当前的 repo。我相信您会看到您只有 1 个分支 master
,这就是 git push --all
推送的内容。
首先,您需要将所有分支提取到本地仓库,因为 git clone
仅克隆 1 个分支:
git fetch origin hot_fixes:hot_fixes
git fetch origin experiment:experiment
现在重复 git push --all origin-bb
。