首先要了解的是GitHub權限模型。提交問題等需要一些權限級別的回購。閱讀應該是足夠的。
但讀取確實也意味着「能夠看到所有的代碼和歷史」。即使您控制了可以寫回您的回購庫的內容,也能夠看到甚至可以複製和分揀。並且沒有比「讀取(所有代碼)」更低的訪問級別。
所以,如果你想你的代碼保留給自己,然後創建某種除了從GitHub項目頁面,並攻到一個專用的問題跟蹤系統存在,可能只是更有意義你想要做什麼。
如果你確定一些代碼應該公開,那麼你必須有兩個回購。具有公共代碼的回購可以是隻讀的,或者如果能更好地滿足您對該代碼子集的需求,則可以讀/寫。無論哪種方式,它可以然後主持問題的討論等
拆分代碼的一個子集到公共回購也不是太努力,但如果你想公共回購具有完整的歷史以及更難。您需要避免爲公共代碼創建兩個不同的歷史記錄,因此您可能必須從專用回購庫中刪除公共代碼。 (它可以作爲子模塊重新引入 - 與公共回購鏈接 - 但最簡單的情況下,這意味着您需要在單個目錄下組織公共代碼。)
如果只有當前版本需要被公開,那就很簡單。您可以啓動新的repo,將文件從一個文件移動到另一個文件,如果需要,可以創建子模塊鏈接。
如果您想發佈已發佈文件的歷史記錄,那麼您必須執行類似於git filter-branch
的操作,以從原始回購(的副本)創建公共回購。確切的過程取決於具體要求,但一般你可以用任何(一)subdirectory-filter
只發佈一個目錄中的內容(新回購的根) - 但它聽起來像是你的代碼是沒有安排,使那麼容易;或者(b)index-filter
刪除要保持私密的文件(同時保留保留的文件的現有目錄結構);或(c)一個tree-filter
和複雜的腳本,只要你喜歡四處移動,刪除或添加文件,轉化爲「原回購」版本到相應的「公共回購」的版本。
如果你這樣做拆分歷史,你可能仍想保留公共文件的歷史記錄在原回購僅僅是因爲連接回購歷史是相當困難的。大多數時候這不是一個巨大的實際限制,除非歷史的規模很大。
感謝您的回答。我真的很喜歡Github的「問題」作爲「問題跟蹤系統」。你認爲如果創建一個帶有一些項目頁面的Github存儲庫以便大部分使用它的「問題」功能是可以接受的嗎? – SoftTimur
我想我不知道會是什麼讓它「可以接受」或其他。我不記得看到它完成了,可能是因爲在沒有集成源代碼控制的情況下,存在專門關注問題管理的站點;但我不知道爲什麼你不能,如果這真的是你想要做的 –