首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git存储库中的内务管理

git存储库中的内务管理
EN

Stack Overflow用户
提问于 2018-11-22 19:34:18
回答 1查看 332关注 0票数 3

我有一个非常大的subversion存储库(超过200,000次提交),我们最近迁移到了git。

多年来,许多人犯了一些小错误,比如添加了iso或msi包,添加了不应该添加的文件夹,等等。我们通过删除文件/文件夹并提交来进行清理。存储库增长了,但这不是问题,因为SVN做了很好的稀疏签出。

现在,在git上,客户端需要提取整个历史记录,而本地克隆现在大约是50 is。是时候来点内务…了

有没有一种方法可以从历史中删除所有文件,这些文件在过去已经被删除了?或者创建一个新的存储库,然后移动所有那些存在于上次提交中的文件?

我使用过git filter-branch命令,这对我很有帮助。但只针对那些我知道路径的文件。我还使用了git log --diff-filter=D --summary来获取所有删除的列表,但是有数千个…

好了,最后,我可以简单地启动一个新的存储库并复制其中的最新文件。我将丢失历史记录,但可以保留原始的大存储库作为归档存储库,以便在需要时查找历史记录。

我真的希望有更好的方法。

EN

回答 1

Stack Overflow用户

发布于 2018-11-23 23:10:04

我发现在迁移到git之后很难做到这一点。但我可以做到这一点。

我这样做了:

代码语言:javascript
复制
svnadmin dump …

创建转储文件。

代码语言:javascript
复制
svndumpfilter exclude …

排除所有我不再需要的东西。为了获得包含已删除项目的完整存储库列表,我执行了以下操作:

代码语言:javascript
复制
svndumpfilter exclude "*" …

最酷的是,svndumpfilter列出了它在结构化排序输出中排除的所有文件。因为我排除了所有内容,所以我得到了一个完整的目录。

我运行了几次svndumpfilter来删除所有不需要的东西。然后重新导入subversion存储库作为新的存储库,然后使用它迁移到git。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53430073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档