我可以自定义git push --mirror,还是使用refspecs进行模拟?

时间:2014-02-09 01:43:52

标签: git

我理解git push --mirror会从源代码中删除目标中缺少的任何引用和分支(以及强制所有其他引用更新/创建)。

我想要一个类似的行为,但在目的地有一个子“命名空间”..它用于将旧的仓库托管迁移到一个新仓库(涉及两个仓库可能都更新的迁移期):让我说我希望镜像发生在refs / old /*.

我注意到--mirror不允许refspecs,但这似乎完成了大部分工作:

git --git-dir oldrepo push newrepo +refs/*:refs/old/*

因此,如果在oldrepo中创建了分支B,则上面会将其推送为“refs / old / heads / B”,并强制执行非FF更新。 但是,在从oldrepo删除X之后,它不会删除“refs / old / head / X” - 我想这是--mirror等价的缺失部分。

那么有什么技巧可以实现吗? --mirror没有采取refspec的原因是什么?

0 个答案:

没有答案