gpt4 book ai didi

git - git 存储库中的管理

转载 作者:行者123 更新时间:2023-12-02 04:27:12 25 4
gpt4 key购买 nike

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

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

现在在 git 上,客户端需要 pull 整个历史,而本地克隆现在大约有 50GB。该做些家务了……

有没有办法从历史记录中删除过去在某些地方删除的所有文件?或者创建一个新的 repo 并移动所有那些存在于最新提交中的文件?

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

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

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

最佳答案

我发现迁移到git后实现这个太难了。但是我以前可以实现。

我这样做了:

svnadmin dump …

创建转储文件。

svndumpfilter exclude …

排除所有我不再需要的东西。为了获得包含已删除项目的存储库的完整列表,我这样做了:

svndumpfilter exclude "*" …

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

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

关于git - git 存储库中的管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53430073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com