2017-03-08 24 views
3

考慮到以下情況,我們來簡化問題。與不同修訂版本共享相同代碼的C++項目的Git工作方式是什麼?

我正在與三個C++項目存儲在三個不同的Git存儲庫。所有項目都需要獨立回購,因爲在開發過程中需要獨立獨立

  • 項目1個
  • 項目2
  • 通用代碼項目

編譯項目1你需要通用代碼版本1(例如一個舊版本)。 到編譯項目2你需要通用代碼版本2(例如更新版本)。

有時你想與通用代碼項目工作作爲一個獨立的項目(實物獨立的共享庫的),編譯它,做測試,並可能有新的版本,樹枝等

推進

項目1和2將保留他們的故事,即使在其個人故事中通用代碼前進他們可能需要不同的舊版本的通用代碼進行彙編。

我需要在同一機器上同時切換多個時間點上的所有項目,所以工作模式不能太複雜以避免錯誤或問題。

我應該用3個平行庫解決該版本上編譯依賴於工作(由例如檢查出回購的正確版本編譯前)編譯的時候?有沒有其他更好的解決方案(例如Git Submodules)?

回答

1

你可以使用

  1. git submodule S(並不推薦,很難維持,git會進入離奇狂暴狀態,如果你陷入困境 - 例如,從混帳下刪除一個子模塊的目錄,所以它真的很脆弱)
  2. git subtree s,可能是更方便的形式git subrepohttps://github.com/ingydotnet/git-subrepo) - 這會導致一些代碼重複,所以我也謹慎使用它,特別是如果項目是大。
  3. repo工具 - https://code.google.com/p/git-repo/

你需要建立一個manifest repository將描述repo從回購,其中修訂和成目錄填充項目部分。這允許您完全獨立地開發組件,並鎖定到這些項目的某些版本,並保持清晰的歷史記錄 - manifest repository單獨版本化,並且可以爲特定版本的軟件標記。

相關問題