我刚刚将一个旧项目从自己的Subversion / Trac基础架构迁移到GitHub
https://github.com/matteocorti/nagios_plugins
存储库包含我编写的每个插件的一个目录。每个插件都是独立的,并且有自己的版本号(但源代码在同一个存储库中)。
当我发布新的插件版本时,我希望发布一个只包含相应文件夹的版本(例如https://github.com/matteocorti/nagios_plugins/tree/master/check_updates)
有没有办法使用GitHub发布功能来选择存储库的哪个部分包含要发布的软件?
另一个选择是拆分整个并为每个插件创建一个存储库。这意味着我将不得不手动移动所有问题/错误和维基页面。
修改
似乎唯一的解决方案是拆分存储库(每个插件的单独存储库)。
如何拆分保留提交历史记录的Git存储库?
答案 0 :(得分:1)
似乎唯一的解决方案是拆分存储库(每个插件的单独存储库)。
确实如此,但这不会迁移维基页面和问题。
要在保留历史记录的同时拆分git仓库,请参阅GitHub页面“Splitting a subfolder out into a new repository”
git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
git filter-branch --prune-empty --subdirectory-filter \
YOUR_FOLDER_NAME master
# Filter the master branch to your directory and remove empty commits
# Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89)
# Ref 'refs/heads/master' was rewritten
存储库现在包含子文件夹中的所有文件 请注意,虽然以前的所有文件都已删除,但它们仍然存在于Git历史记录中。您现在可以将新的本地存储库推送到GitHub上的新存储库。
同时检查“How to tear apart a repository: the Git way ”
每个插件有一个repo后,您仍然可以在原始仓库中将其注册为git submodules。
修改强>
将子文件夹推送到新存储库
git remote rename origin upstream
git remote add origin NEW_URL
git push origin master