2011-11-02 113 views
65

我有一個GitHub倉庫中的公共PHP項目,其中只包含一個分支(主)。在GitHub上有一個公共回購的私人分支?

我想擁有一個單獨的分支/分支,這對我來說是私有的(我已經爲私有GitHub回購付款)。我希望能夠將來自私人分支/分支的更改合併到公共回購中,反之亦然。

考慮到這一點,這裏是我的問題:

  1. 我能在公共回購的私人分支?
  2. 我可以將自己的公共回購交易到我自己的私人分行/分支嗎?
  3. 如果以上兩種都是可能的,哪個是最好的前進方向?如果兩者都不,我應該如何繼續?
+1

將公共存儲庫作爲私有存儲庫進行分支並不是最好的辦法,您可以在其中創建多個不推送(返回)到公共存儲庫的分支(反之亦然)? – Legolas

+0

那是什麼我問,我希望能夠建立公共回購的副本,但我的更新是私有的(除非我想要把具體的事情回到公衆一個) – Lizard

+0

http://24ways.org/2013/keeping - 你的代碼庫的私人部分/ github/ – assylias

回答

66

是否有可能對公共回購的私人分支?

在GitHub上,您的存儲庫是公共或私有的;你不能有選擇地「私有化」一個分支。

我可以將自己的公共回購交易到我自己的私人分行/分支嗎?

您可以根據需要複製你的公開回購到本地機器上,分支,根本就不是上游把你的「私人」的分支(通過指定分支推到原點:git push origin mastergit push origin branch-i-want-to-be-public:master)。

哪一個是最好的前進方向/我該如何繼續?

爲了充分利用GitHub上的爲您的公共和私人開發,我建議分叉內GitHub上的公共分支,改變了新的分支,以「私人」的設置,然後克隆專用版到您的本地機器。當你準備好公開更改時,將所有內容都推送到GitHub上的私人分支,然後使用pull requests選擇性地將分支複製到公共回購。

要在GitHub上創建一個私有存儲庫,您必須擁有升級後的(付費)帳戶。如果你只是搖擺免費帳戶,您仍然可以使用第一個過程,我建議— 克隆公衆對本地機器,分支機構,並推動具體的「公共」分支原點 —無需私人回購協議。

如果您有付費的GitHub帳戶,或正在使用另一種提供公共和私人分支和拉取請求的服務(例如BitBucket),那麼您可以使用上述任一方法公開您的代碼。

+15

GitHub不允許你製作公共回購私有分支。您必須複製回購以使其變爲私密,然後您將失去與公共回購的關聯。我想知道是否可以將公共回購作爲單獨的遠程設備添加到您的本地私人回購克隆中。然後將分支推送到該遙控器。 – mj1531

+0

剛剛嘗試過。有用! – mj1531

+0

不幸的是,它不可能使用pull請求將更改從私有「分支」中提取到存儲庫的公共副本。 –

1

1)是否有可能有專用於公共回購

據我所知,沒有。

2)我可以我自己的公共回購叉到我自己的私有分支

不,你不能fork一個完整的回購(1-N分支)合併爲一個分支。實際上你可以,如果你只是分叉完整回購的一個分支。只需將其添加爲遠程或從克隆開始即可。您可能也有興趣Sparse checkouts

3)如果兩個以上的有可能是前進的最好方式

N/A

4)如果沒有可能是我應該如何着手?

N/A

24
  1. Duplicate your repo
  2. 使複製的回購在GitHub上的私人之一。
  3. 克隆私人回購爲您的機器
  4. 添加遠程到您的公共回購(GIT遠程添加公共[email protected]:...)
  5. 與犯下用於您的公開回購該新推分行公共遠程。 (確保你不小心犯私人唯一的代碼)
  6. 可以使用「混帳獲取公衆」,然後在本地合併它們推到您的私人回購協議(產地遠程)帶來的變化你的公開回購。
+0

複製對我來說工作正常,但我必須按照相反的順序進行,首先創建一個私人回購站,然後從命令行復制公共回購站。謝謝! – Joel

相關問題