2015-10-16 92 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