[請益] 用 Git 實現不同版本的方法?
目前工作上遇到這樣的問題
有 Project A 因為不同客戶需求不同分出了
Project A'、Project B (Fork),但 Project A 的更新又得 merge 進 A' 及 B
有點繼承的感覺
但是實際上 Merge 的結果卻不是我想的
示意圖:
https://i.imgur.com/5tGuKIJ.jpg
請問這樣的狀況是有什麼地方做錯
或者是說這樣的 case 分 branch 就好呢?
--
最好是可以模組化把general function包成library
分成不同的project給不同客戶 customer project只存
客製化的東西 general function都放回library
然後用引用library的版本控制功能推進
repo 的內容是 web service
但是客製的部份大都是另外新增的
所以想說是不是可以有繼承 A 的方法
善用分支是非常推薦的作法
主要用 Gitlab 進行,剛剛有測試這樣的狀況在 Github
是不能用的
推薦分project的原因是因為最後客戶常會要加新功能
到時候就會有A'', B', B''
rebase就好
Project A的修改都開 feature分支,feature 在合併到 A,A',B
建議拆project較好 誰知道客戶會不會提出什麼鬼需求
我之前的做法是一個mono repo project ,,A B 共用的部
分會是共用的package ,,然後 A B 有自己的 package 做
客製化的東西還有去引用共用的部分
除非你可以把共用核心抽出模組,客制功能做成 plugins
否則兩個 branch 就只會漸行漸遠。但你要每次都人工 merge
人工 check 每行 code 也不是不行
A檔案應該有發生衝突吧?合併過程中是有指定use rem
ote or use local 嗎?
和 19 樓想法類似,這應該是從程式碼的層次下手,不然之
後如果有更多客製化呢?建議可以去研究一下 Clean Archi
tecture / Configuration Management 這些東西。
我覺得你應該用config。不同案子吃不同config,其他程式
碼一樣
維持一套code就好
Feature也可以做成feature toggle, 然後吃config決定哪
些feature要不要開
為什麼不做在一起 再弄個權限控管 區分邏輯就好
現在的公司也有類似的問題,我們的情境是有兩台不同
device 上面要用一樣的 android app,然後部分功能因
應 device 的狀況調整。目前是用兩支branch 去做,有
新增功能的話就 cherry-pick 過去。
這個基本上最後都是業務問題不是技術問題,上面擋不住
什麼神奇需求都接,你怎麼設計都沒用
推樓上
應該由程式碼架構去著手,你這個做法會常常衝突,後續
的人也很難維護
謝謝各位的回覆
目前我應該會用 config 的方式去設定
然後再重新 fork
核心部份仰賴 ProjectA 更新
其他客制就 call ProjectA 的功能再加上要改的東西
如果是 project A 的環境變數相關或功能就用 config
處理
真的感謝大家提供這麼多意見
rebase
最後還是選fork,好奇不使用branch 的原因是?
直接開成新repo阿
開分支阿,頂多你推到不同的 remote
我比較好奇圖中為何做了merge後A file還是A file,不是應
該變成A與A’ merge file
我覺得thumbe31949你們需要的應該是dynamic feature或
設定不同的buildTypes並設定sourceSet來做
上下游剪patch也行吧
fork 的原因我覺得用起來和 branch 一樣
但是在不同的 repo 的感覺
因為平時的 branch 就有很多大家各自開發的項目,所
以就比較沒有考慮
還是大家有其他的建議(?
同p大疑問 為何merge之後不是變A跟A’的merge file
A.file->A’.file是指對A進行更新還是根本是A.file換了
名字
A' 是對A做修改 至於說為什麼結果這樣
我可能需要看 Gitlab 設定才知道
我也很困惑,因為他和我想的不一樣
可能你不知道branch 可以用'/'來分群組
不過採用fork 也不是不行,只是merge時是用push/pull
什麼 居然有 / 分群?!
另外圖的問題發現是 Gitlab 在 conflict 的時候 Prev
iew 的 Bug... 害我誤會了
讓code可以吃configuration,不要直接分兩版code
git patch
36
[情報] 回到最初...《仙境傳說:波利合併》休閒 RPG《仙境傳說:波利合併》全球同步發行 人氣角色「波利」化身各種職業登場 《Ragnarok: Poring Merge》是以 Ragnarok 世界觀為主軸的放置型 RPG。仙境傳說 人氣角色「波利」化身為波利騎士、波利獵人等各種職業帶來全新體驗,玩家可盡情挑戰25
[請益] 請問這樣的git使用方式是否是正確的?請問一下,本人是程式新手,最近加入了一個組織,裡面的開發團隊的git使用方法,讓 我覺得有點怪怪的,但是我也覺得這也可能是正確的git使用方式,只是我以前不知道而 已,所以想請問一下,以下的git使用方式,是否很常見? 是否是合理的? 假如某個repo裡有3個folder - serviceA, serviceB, serviceC,這3個folder在開發階 段不會有dependency,這個開發團隊的作法是,從master branch一開始的init commit22
[請益] git協同合作問題遇到一個情境 想請問應該如何操作 假設現在 有一個主分支release 兩個feature branch 第二個分支需要用到第一個分支部分代碼17
[問卦] 寫程式的精髓就是理解 分解 再構築吧?理解:了解整包code 分解:設斷點、建立branch 再構築:修過code merge回去 是嗎? 那真理之門是什麼11
Re: [請益] 請問這樣的git使用方式是否是正確的?個人意見,僅供參考 不太確定常不常見,但看起來是合理的。 可以想到的好處和情況是 不同的service 可以分開Build,Build 之後的artifact 可以依照每個service 的開發進 度deploy 到不同的測試環境,利於不同進度的開發和整合。3X
Re: [討論] 靠submit紀錄來除錯是一個不好的習慣嗎^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 程式會造成"軟體架構設計不良,高耦合,導致原本要做A功能,卻影響到B功能," 大部份是git造成的 不知道吧?那這樣算不算"無知"? 想看看git branch來merge去是不是都是一坨屎在那branch來merge去9
Re: [請益] 大型Git版本庫的備份或替代方案: : 用法跟 git 很類似,但是就是拿來備份大的檔案。 : 更精確的說是 snapshot 檔案,每個版本類似 git 的 commit : : 有支援,可以參考7
Re: [請益] 專案管理的技術?感謝大家正向的回應,解決我的很多問題 目前問題還是有3個 在比較少人的板問過,都沒有任何結果,但是想說問問不同意見 A.7
[問卦] 法律有沒有版控啊?各位大哥大姊你們好 剛剛看了一堂溫暖又富有人性的通識課後,看了那個老師的其他影片 然後想到一件事情 就是台灣的法律有沒有辦法用 git 做版本管控 直接開一個 github 帳號2
Re: [問卦] 如果政府所有的決策都上git會怎樣??merge 的時候有衝突 要解 就會有人跟你說 在那叫什麼 好不容易merge完的時候 pull 回來 build不過的時候 會有人跟你說 不必去查 發起一個大家發起一個issue 也都弄好了 準備提交commit 他就是不理你