【发布时间】:2012-08-17 00:28:36
【问题描述】:
我有一个非常大的仓库,需要清理一下。回购来自 SVN,一开始就很混乱。
有很多分支,其中一些被合并到主干中,而另一些则没有。不幸的是,SVN 没有跟踪这一点,所以来自 SVN 的合并/未合并分支看起来是一样的。 (就像树枝在风中挂在那里)
我想把这些多余的树枝剪掉,把东西清理一下。
如何获取提交的 SHA1,并仅将该提交中发生的更改与 master 中的更改进行比较? (因此,如果某个分支的提交中的所有更改都在 master 中,我可以删除该分支,否则我可以适当地维护该分支。
树的例子:
o--o--o--o--o Unmerged from SVN
/
o--o--o--o--o--o--o--o--o--o--o--o--o--o--o--o--o--o--o Master
\ \ /
o--o--o Merged from SVN o--o--o
(请注意,据 Git 所知,两个分支是如何不合并回 master 的,但在其中一个分支中,所有更改都在 master 中,因为它是在 SVN 存储库时合并的,我想删除这个)
【问题讨论】:
-
不确定是否来自 SVN 导入的 repo,但我使用 git log
.. 来查看是否包含分支,因此可以删除。我应该说 - 如果它被合并,它将不会产生任何结果。 -
对,也可以使用 git remote prune 删除任何已合并的分支(显然是在远程服务器上)。然而,这些都是悬垂的树枝。