我有一個非常成熟的軟件工具包,但它通常需要很小的調整(主要是爲了應付來自第三方產品的兼容性問題)。我現在希望生成一個「新」版本(改進的API),它將基於原始版本 - 這將與現有分支不同,隨着時間的推移,但幾年之後,我將需要保留原始的「現場」爲了兼容性而需要它的現有客戶。當然,我也需要確保「調整」也適用於「新」版本,因爲這些問題(也會在大多數!)也適用於「新」版本。在Git中管理並行版本的最佳方式是什麼?
所以 - 我的理想(簡單)的工作流程是:
- 在「新」版本中工作時 - 更改僅適用於該 版本。
- 當處理「舊」版本時,所有產生的變化 都會(儘可能自動)自動應用於兩個版本 ,一旦我對它們感到滿意(當我提交,提交或其他)時。
我意識到需要偶爾進行手動干預,合併是衝突的,但根據過去人工更改的經驗,我認爲這很少見。現在,我正在放棄VSS(是的 - 繼續嘲笑我保持這麼久!),我希望Git能夠讓這個簡單,但到目前爲止,沒有出現到任何「簡單」的解決方案,我看到的建議都是圍繞「rebase」構建的,這對我來說似乎是「錯誤的」,因爲rebase似乎做了很多其他的事情,比如重寫歷史記錄,當我需要的只是一個簡單,真實的「前進」基於來自其他分支的變化。
- 我在這裏錯過了什麼嗎?
- 是否有一個更容易,正確定義的方式來做到這一點?
- 用不同的源碼控制系統而不是Git會更好嗎?
非常感謝所有的想法!
我認爲你在這裏錯過了一些東西,因爲'rebase'被設計爲*完全*用於你的用例。它重寫歷史,因爲它*應該*。如果你做得對,它只會在特定的本地分支中重寫歷史記錄,因此中央倉庫中的歷史記錄都不會被重寫。 – 2012-04-22 09:22:12
你也可以直接合並,以使事情變得更簡單,但rebase是一個更好的解決方案。 – 2012-04-22 09:23:12
相關:http://stackoverflow.com/questions/457927/git-workflow-and-rebase-vs-merge-questions – 2012-04-22 09:30:19