簡體   English   中英

在私有git服務器上分支公共git存儲庫

[英]Branch a public git repository, on a private git server

我在本地Fedora機器上有自己的git服務器。 我有兩台開發機器,一台本地Fedora機器和一台本地Windows 7機器。 (開發機器和git服務器都在本地網絡上,因此我使用這種方式比使用github更快。)

我使用的是BSD許可庫的github存儲庫。 我想做自己的更改,我可以推送到我自己的git服務器,可以選擇提交SOME但不是所有補丁或推送到github。

我希望能夠讓我的本地存儲庫能夠從github存儲庫中提取更改。 (我知道如果github存儲庫在我進行本地更改的地方發生變化,我可能不得不進行手動合並。)

我怎樣才能做到這一點?

我一直在定期從github存儲庫更新,將該目錄添加到我的本地git服務器作為新的存儲庫,重新進行任何更改,並推送到我的本地git服務器。

一定有更好的方法。

Git是分布式的,因此您描述的工作流程本質上就是Git的工作原理。

我們首先考慮您不想提交更改。 然后你可以git clone遠程服務器, git remote add你的私人服務器並推送到它。 當上游有你想要的新東西時, git pull從中git pull出來,當你有新的東西時, git push送到你的私人服務器。 在此工作流中,私有服務器和公用服務器上的提交是相同的(特別是相同的sha1),但是您的私有服務器有一些公共服務器沒有的提交。

在第一個和git remote add使用git clone git remote add另一個或反之亦然不會有太大變化。 git clone配置默認的上游(這樣無爭議的git pullgit push與該遙控器同步),所以最簡單的方法是從你經常使用的遙控器git clone 但您可以稍后更改默認上游(例如git push --set-upstream )。

推薦閱讀: 使用遙控器

現在,如果你想向上游提交更改,那么難的是你不能只將分支推送到github。 實際上,您可能需要在要保持私有的某些更改之前提交一些更改,因此提交必須涉及某種合並,並可能解決沖突。 你可以通過創建像for-github這樣的分支(從公共歷史的尖端分支)來實現這一點,然后git cherry-pick你想要為這個分支貢獻的變化。 然后,將此分支推送到github。 可能更好:對於你想要在上游貢獻的每個功能,為這個功能創建一個分支,挑選相關的提交,在github上推送並發出一個pull-request。

推薦閱讀: git cherry-pick

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM