2015-10-16 58 views
1

我只是迁移旧项目从自己的Subversion/Trac的基础设施,以GitHub的分裂GitHub上发布

https://github.com/matteocorti/nagios_plugins

库包含为每个插件我写了一个目录。每个插件都是独立的,并有自己的版本号(但源代码位于同一个存储库中)。

当我发布一个新的插件版本,我想有只用相应的文件夹中释放(例如,https://github.com/matteocorti/nagios_plugins/tree/master/check_updates

是否存在与GitHub的释放特征的方式来选择其中一个仓库的部分包含要发布的软件?

另一种选择是拆分整个并为每个插件创建一个存储库。这意味着我将不得不手动移动所有问题/错误和维基页面。

编辑

看来,唯一的方案是分裂库(为每个插件单独的储存库)。

如何拆分保留提交历史记录的Git存储库?

+1

你可以或者看看git的子模块;但我个人更喜欢在这里多个存储库 –

回答

1

看来,唯一的解决方案是拆分存储库(每个插件的独立存储库)。

这是,但不会迁移维基页面和问题。

,同时保持历史分割混帐回购协议,见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

一旦你有每一个插件回购,你仍然可以注册他们在原来的回购,如git submodules

编辑

推子文件夹到一个新的存储库

git remote rename origin upstream 
git remote add origin NEW_URL 
git push origin master 
+0

谢谢,我添加了如何将子目录推送到新的存储库 – Matteo