簡體   English   中英

使用GIT跟蹤遠程項目,但將本地更改保持私有

[英]GIT usage for tracking a remote project, but keeping local changes private

在工作中,我們使用git致力於一個開源項目,並保留本地專有更改(我們也對其進行了許可)。 我想做的是建立一個裸倉庫,該倉庫是上游倉庫的一個克隆。 然后,我們的開發人員將從中克隆並使用更多的cvs / svn開發模型將其推回-如果Joe正在分支中工作,然后離開,我們希望Hank通過簽出分支來接管。

我感到困惑的是跟蹤遠程回購的最佳方式。 我們內部裸倉庫的母版是否應該是上游母版的副本? 還是應該把它放在另一個分支上。 另外,由於我們的共享存儲庫是空缺的,我們該如何從上游獲取最新更改? 如果我是正確的話,我會將上游作為我的個人結帳的遙控器添加,將其拉出,然后將其推回到我們的共享存儲庫中嗎?

如果可能的話,我們希望限制可以向共享存儲庫進行上游更改的用戶,但是所有開發人員都應該可以自由訪問共享存儲庫中其他分支上的工作。

我是否希望在svn上運行git repo從而對我影響太大?

謝謝。

我的建議是使用像git這樣的CI服務器。 例如,哈德森(Hudson)有一個插件,該插件可以合並所有分支,進行構建和測試,並在所有內容為綠色時將其推送到主節點。

您還可以運行任意命令,因此您可以有一個從屬項目,該項目在成功的buid之后將外部主服務器推送到分支上的內部存儲庫后觸發。

然后,您可以決定手動合並該分支,或者讓另一個hudson作業將其合並,並在綠色時將其推送到內部主機。

我建議以下內容:

  • UPSTREAM'S GIT(又名上游 )分支機構:
  • 公司的共享REPO(aka companygit )分支機構:
    • 專有:公司的開發部門
  • 本地GIT REPO分支機構:
    • upper_master:跟蹤上游/母版
    • 專有:跟蹤公司git /專有

因此,新工作人員會將git clone companygit克隆到他的計算機,然后添加上游 (git remote add)並從那里拉_upstream_master_分支。 在本地,他將擁有_upstream_master_分支,該分支直接跟蹤上游/主遠程(我相信companygit不太在乎),以及專有分支,該分支緊隨companygit的分支。

有時,他可以“ git pull upstream_master”,檢出專有內容,然后“ git merge Upstream_master ”(祈禱沒有沖突:)),以合並新的上游提交,然后推送到companygit

為了將您的特定更新推送到上游 ,我將對每個相關提交使用“ git cherry-pick”。

這是一個解決方案:在某個非裸倉庫中放置一個可以同時訪問內部中央倉庫和上游主倉庫的遠程倉庫。 然后,您可以執行cron作業,並執行git pull上游master; git push internal master:upstream'。 這將提取上游代碼,然后使用新代碼更新內部服務器上的“上游”分支。

從那里,每個人都可以向上游拉動,以及其他兩個標簽-也許是“已發布”和“內部”等等? -代表您在內部所做的工作,全部來自中央存儲庫。 如果您確定要發布的內容最終都在發布的分支上,則可以將其推送到github或上游人員可以合並的內容。 一般來說,您將需要有人定期將上游合並到發布中,然后將發布合並到內部中,以便正確傳播上游更改。

暫無
暫無

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

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