群组git个分支机构
Group git branches
我已经接管了一个很大的 git 存储库,其中有很多分支,似乎没有人真正知道它们到底是什么。有没有办法将分支放在某种分组或文件夹中,以便它们仍然存在但不一定列出?使重要的分支更容易被发现。
编辑:我希望能够区分我使用的分支和对我来说没有意义但仍然无法删除的分支.
您可以使用/
,分支将显示为分组到文件夹中(仅显示)
即2 个分支名为:
dev/major/minor1
dev/major/minor2
会这样显示(应该是一棵树):
dev
|---major
| |---minor1
| |---minor2
删除分支。
如果没有人知道它们是什么,也没有人声称拥有它们,那么就不可能有人知道了。就像囤积旧报纸 "just in case" 一样,它们只会妨碍完成工作。放手吧。特别是如果他们相当落后并且可能是需要更新的 PITA。
删除它们会很快告诉您是否有任何东西或任何人依赖它们。对于少量可控的痛苦,您将解决很大的不确定性。人们将学会不要把重要的东西放在身边,把所有东西弄得一团糟。
分支在 Git 中是短暂的东西,很容易以各种方式恢复。您可以做一些简单的事情来使这个过程更容易、更健壮。这主要是为了让您的开发人员对删除分支的想法更满意。
将它们做成标签
在Git中,标签基本上与分支完全相同,它们只是提交上的标签。不同的是他们不动。在分支提示上做一个标记,然后删除分支提示。该标记将引用提交并防止它们被垃圾收集。
git tag <tag> <branch>
git branch -d <branch>
您可以将它与 结合起来,并将标签组织到一个目录中,例如 archived_branches/
。
如果有人想在那个存档的分支上工作,他们可以从标签创建一个分支并删除标签。
git checkout -b <tag> <branch>
git tag -d <tag>
在 Git 中这是一个非常便宜的过程。
最终,当一段时间内没有人使用这些存档标签时,您可以将它们删除为死标签。商定制作标签存档的日期。在共享日历上标记它。
打捞分支内容
一定要检查分支内容是否有任何可挽救的内容。如果有,您可以将其设为活动分支,或者 cherry pick 有用的位。
让想要保留旧分支的人 "just in case" 来做这项工作。
删除已合并的所有内容
您可以查看哪些分支已与master合并git branch --merged master
。删除合并的分支。提交之间的连接将保留分支,合并提交将保留该分支。例如...
A - B - C --------- G - H - I [master]
\ /
D - E - F
D - E - F
是分支中的提交,G
是合并提交。合并提交的消息,如果他们做的事情是正确的,将包含某种关于他们正在做什么的参考。也许 link 到问题跟踪器。有关详细信息,请参阅 。
使用 reflog
Git 倾向于在垃圾收集之前将旧提交保留大约两周,这样可以给你一些缓冲。您可以在某处记下它们的提交 ID,或使用 reflog 来恢复它们。恢复它们就像 git branch <name> <commit id>
.
一样简单
使用备份
你的存储库的备份(你有备份,对吧?)给你另一个缓冲区。
克隆
最后,您可以在删除某个地方的旧分支和松鼠之前克隆存储库。如果发现旧分支需要取消删除,则可以从该存档存储库中提取它。
但可能没有人会再想起那些旧树枝。
我已经接管了一个很大的 git 存储库,其中有很多分支,似乎没有人真正知道它们到底是什么。有没有办法将分支放在某种分组或文件夹中,以便它们仍然存在但不一定列出?使重要的分支更容易被发现。
编辑:我希望能够区分我使用的分支和对我来说没有意义但仍然无法删除的分支.
您可以使用/
,分支将显示为分组到文件夹中(仅显示)
即2 个分支名为:
dev/major/minor1
dev/major/minor2
会这样显示(应该是一棵树):
dev
|---major
| |---minor1
| |---minor2
删除分支。
如果没有人知道它们是什么,也没有人声称拥有它们,那么就不可能有人知道了。就像囤积旧报纸 "just in case" 一样,它们只会妨碍完成工作。放手吧。特别是如果他们相当落后并且可能是需要更新的 PITA。
删除它们会很快告诉您是否有任何东西或任何人依赖它们。对于少量可控的痛苦,您将解决很大的不确定性。人们将学会不要把重要的东西放在身边,把所有东西弄得一团糟。
分支在 Git 中是短暂的东西,很容易以各种方式恢复。您可以做一些简单的事情来使这个过程更容易、更健壮。这主要是为了让您的开发人员对删除分支的想法更满意。
将它们做成标签
在Git中,标签基本上与分支完全相同,它们只是提交上的标签。不同的是他们不动。在分支提示上做一个标记,然后删除分支提示。该标记将引用提交并防止它们被垃圾收集。
git tag <tag> <branch>
git branch -d <branch>
您可以将它与 archived_branches/
。
如果有人想在那个存档的分支上工作,他们可以从标签创建一个分支并删除标签。
git checkout -b <tag> <branch>
git tag -d <tag>
在 Git 中这是一个非常便宜的过程。
最终,当一段时间内没有人使用这些存档标签时,您可以将它们删除为死标签。商定制作标签存档的日期。在共享日历上标记它。
打捞分支内容
一定要检查分支内容是否有任何可挽救的内容。如果有,您可以将其设为活动分支,或者 cherry pick 有用的位。
让想要保留旧分支的人 "just in case" 来做这项工作。
删除已合并的所有内容
您可以查看哪些分支已与master合并git branch --merged master
。删除合并的分支。提交之间的连接将保留分支,合并提交将保留该分支。例如...
A - B - C --------- G - H - I [master]
\ /
D - E - F
D - E - F
是分支中的提交,G
是合并提交。合并提交的消息,如果他们做的事情是正确的,将包含某种关于他们正在做什么的参考。也许 link 到问题跟踪器。有关详细信息,请参阅
使用 reflog
Git 倾向于在垃圾收集之前将旧提交保留大约两周,这样可以给你一些缓冲。您可以在某处记下它们的提交 ID,或使用 reflog 来恢复它们。恢复它们就像 git branch <name> <commit id>
.
使用备份
你的存储库的备份(你有备份,对吧?)给你另一个缓冲区。
克隆
最后,您可以在删除某个地方的旧分支和松鼠之前克隆存储库。如果发现旧分支需要取消删除,则可以从该存档存储库中提取它。
但可能没有人会再想起那些旧树枝。