- 背景**
我正在编写一个脚本来镜像和定期刷新GitHub中的一些仓库。GitHub仓库引用了一些在外部没有意义的Pull请求分支,所以我按照Howto: Mirror a GitHub Repo Without Pull Refs中的建议过滤掉了它们。
git clone --mirror SourceGitHubRepoUrl
git remote add --mirror=push alice MyMirrorUrl
git config --local --replace-all remote.origin.fetch "+refs/heads/*:refs/heads/*"
git config --local --add remote.origin.fetch "+refs/tags/*:refs/tags/*"
此时本地镜像具有正确的获取规则
git remote update origin
效果很好但是
git push --mirror alice
会出现类似! [remote rejected] refs/pull/22/head -> refs/pull/22/head
的错误,因为packed-refs
仍列出refs/pull/*
分支。
- 问题**
我如何修正packed-refs
的内容?我可以删除所有匹配"refs/pull"的行吗?
后者似乎起作用,但人们永远不能确定是否有潜伏的小精灵。
1条答案
按热度按时间iibxawm41#
在类似的情况下,我能够使用
git-update-ref
和git-pack-refs
通过裸repo将远程origin
增量更新为镜像远程backup
: