鍍金池/ 問答/Linux/ Git怎么橫向管理多個版本?

Git怎么橫向管理多個版本?

問題描述

現(xiàn)在有這樣的需求:
有一個軟件, 這個軟件有好幾個版本,這些版本之間的差異很小,
也就是說,這幾個版本大部分代碼是相同的,
也有小部分的代碼是不同的。

重點(diǎn)是:
出現(xiàn)了一個問題,這個問題出現(xiàn)這些程序的公共部分,
我能不能有一種辦法,
只修改一次,
讓所有的版本都改變
但是保持原來版本不同的地方。

問題出現(xiàn)的平臺版本及自己嘗試過哪些方法

(1) 提取出公共的部分,提取就是一個大問題。

最后,我發(fā)現(xiàn)我的需求是有點(diǎn)矛盾,但是,我還是想和大家一起討論一下,

感謝

回答
編輯回答
蟲児飛

git submodule

2018年6月30日 00:34
編輯回答
不舍棄

我一個不是那么正規(guī)的方法,算是快刀斬亂麻的方法,比如有 A B C 三個版本

  1. 隨便選一個 版本 出來 如A, 從A拉三分支A' B' C'
  2. 其它 (B , C) 都與這個 A 做對比,把B,C差異文件都打包出來(archive + diff 命令)
  3. 把差異文件分別覆蓋到 B' C' 并 commit 一次
  4. 測試 B' C' 分支是否正常,
  5. 從A拉一個分支 base .

以后公共部分改 base 再, 差異部分改 A' B' C'
附: 打差異包教程

2018年1月18日 12:17
編輯回答
心夠野

沒看到具體問題,不過似乎一個核心分支+若干個分支 rebase 也是可行的。

2018年7月1日 18:17
編輯回答
陌璃

題目中你說抽取公共部分很難,估計(jì)是公共部分在所有項(xiàng)目中可能都已經(jīng)改動過了,并且改動未知,短期內(nèi)唯一可行的方法就是使用git cherry-pick方式將改動合并到各個分支,并手動解決沖突。

從長遠(yuǎn)看,F(xiàn)eng_Yu已經(jīng)給出理論上的最佳方案,即將公共部分提取出來放于單獨(dú)的一個項(xiàng)目中。然后所有其它項(xiàng)目通過SubModule(子模塊)的形式引用這個項(xiàng)目。

2018年2月27日 21:29