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