我在GitHub帐户中分配了大约20个不同的回购。其中大部分,我分叉了一个上游回购,创建了一个分支,上传了一个补丁,提交了一个拉取请求,并将PR合并到了上游。所以我的回购分支可以删除。
如何判断哪些叉子在上游是多余的并且可以删除?如果我的某个仓库的分支有20个分支,我不想检查每个分支的 是否有任何提交不在上游分支中。
答案 0 :(得分:0)
我不想检查每个分支是否有任何提交不在上游分支中。
然而你应该(对于你的分支是唯一的分支):检查上游仓库是否包含每个分支HEAD的最简单方法。
只克隆上游回购,然后进行分叉:
git ls-remote --heads /url/of/a/fork
(使用git ls-remote
,您不必克隆所有分支,只需克隆上游代码)
对于代表不上游仓库分支的分支的每个SHA1,从克隆的上游仓库执行:
git branch --contains <SHA1>
如果可以从上游仓库访问每个HEAD,那么fork就是过时的。
我忽略了所有在上游仓库中找到的分支,因为所说的上游仓库可以对这些分支进行rebase /重写,并且你不应该直接在一个公共分支上开发(PR应该从上游不存在的专用PR分支