情景:
我有两个git存储库,分别叫volatile
和template
。
template
是一个只读的回购,被视为"原作"。
volatile
和template
都存在于多个(至少两个)上游遥控器上。
volatile
以template
的相同副本开头。
这是通过从volatile
内部强制推送到template
来完成的,如下所示:
cd template;
git push -f remote-url1:volatile --prune
git push -f remote-url2:volatile --prune
对volatile进行一些操作后,volatile的状态发生变化。 添加了分支,标签和提交。
如何让volatile
再次与template
(在遥控器上)相同?
我目前可以通过执行以下操作重置分支:
# On my local machine
cd template;
git push -f remote-url1:volatile 'refs/remotes/origins/*:refs/heads/*' --prune
git push -f remote-url2:volatile 'refs/remotes/origins/*:refs/heads/*' --prune
我尝试过使用
cd template;
git push -f remote-url1:volatile --tags --prune
和
cd template;
git push -f remote-url1:volatile --prune 'refs/tags/*:refs/tags/*'
删除遥控器上添加的标签,但这似乎会产生混合结果(我不能删除标签,遥控器说一切都是最新的)
答案 0 :(得分:0)
到目前为止,最好的选择似乎是:
cd template;
git push -f remote-url1:volatile 'refs/remotes/origin/*:refs/heads/' --prune
git push -f remote-url1:volatile '+refs/tags/*:refs/tags/*' --prune