我有一个公开的回购协议。
问题是我已经使用了很长时间,这意味着在裸回购中有很多垃圾。有成吨的枯枝,移除的标签,等等…
是否有一些命令来清理裸repo?有些人喜欢在相反的情况下工作?
编辑:好像有些混乱。这是我的设置:
DevelMachine1
^
|
v
MainDevelRepo <-> MainRepo -> PublicBareRepo (with a lot of junk) -> The World
^
|
v
DevelMachine2
最佳答案
在得到更多信息之后:
MainRepo -> PublicBareRepo (with a lot of junk) -> The World
所以问题就在这里。偶尔你会从mainrepo推到publicbarerepo,现在它包含了一些不再有效并且不应该存在的东西。在未来,确保你只推应该在那里的分支。我想现在最主要的事情是去掉它的分支,然后我必须回到我原来的答案(假设我们谈论的是同一种垃圾)
git push PublicBareRepo :someBranch1
git push PublicBareRepo :someBranch2
在OP提供更多信息后:
似乎是回购协议的设计造成了问题,镜子是解决问题的方法。如果A是开发人员推送他们的东西的主要裸机回购协议,如果B是公共裸机回购协议,那么B应该是带有--mirror选项的A的克隆。
需要做的是在b上执行“git remote update”(假设b已经是a的镜像),以便它将自己更新为与a相同。
原始答案:
如果要删除远程存储库上的分支,可以执行以下操作:
git push origin :branchName
同样的情况也适用于任何ref,例如标签:
git push origin :tagName