如何使两个git存储库相同?

时间:2015-12-13 23:19:55

标签: git

情景:

我有两个git存储库,分别叫volatiletemplate

template是一个只读的回购,被视为"原作"。

volatiletemplate都存在于多个(至少两个)上游遥控器上。

volatiletemplate的相同副本开头。 这是通过从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/*'

删除遥控器上添加的标签,但这似乎会产生混合结果(我不能删除标签,遥控器说一切都是最新的)

1 个答案:

答案 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