我想将所有git notes refs(refs/notes/*
)从一个中央git存储库转移到另一个。
假设git中心服务器A
和B
,我想将A
的git备注复制到B
。
我尝试使用以下选项:
git push remoteB refs/notes/*:refs/notes/*; git push --mirror
(此选项有效,但它正在删除A
中不存在的其他引用,例如分支); git push --all
(此选项不会保持git注释同步,但在保持refs/heads
同步时效果很好)在提交后的git hook中。[git@hdqpdqaapp5 modeln50.git]$ GIT_TRACE=1 git push
source +refs/notes/*:refs/notes/*
trace: built-in: git 'push' 'source' '+refs/notes/*:refs/notes/*'
trace: run_command: 'ssh' '-p' '8081' 'hdqpdsource1.modeln.com' 'git-receive-pack '\''/modeln56.git'\'''
它正确地拾取了远程名称,但项目名称错误(modeln56
),而且命令只是挂起而没有任何输出。
答案 0 :(得分:0)
那应该推动你想要的一切(笔记和头脑):
git push remoteB 'refs/notes/*:refs/notes/*' 'refs/heads/*:refs/heads/*'
您可以通过添加refspec 'refs/tags/*:refs/tags/*'
来推送标签。
如果您想避免输入refspec列表,可以设置config remote.remoteB.push
。