我有一個項目託管在git環境中,我必須生成一個基於它的白標籤項目。我對微軟的TFVC(團隊基礎版本控制)更有經驗,我很容易知道如何使用它,但我不確定我應該如何繼續使用git。Git策略與白標籤項目一起使用
在TFVC中,我會從主項目創建一個分支'A',擦除任何客戶特定的內容並完成,我有一個通用版本。之後,我會刪除父母,從'A'創建一個新分支'B',然後執行從主項目到'B'的baseles合併,現在我有我需要的層次結構,並且新創建的分支包含所有客戶具體變化。當新客戶到達時,我從通用'A'創建分支'C'並應用所需的任何新更改。
如果新功能對於所有客戶端來說都是通用且有用的,它將在'A'中開發,然後將合併到'B','C'等。這是所有客戶將被允許請求不同的功能,並使用單個存儲庫來打開和關閉它們,在我看來,這比維護源自普通存儲庫的不同代碼示例差得多。相同的功能在不同的客戶端也可以有不同的表現,我不希望應用程序必須在運行時檢查它。
隨着場景的說明,我該如何使用Git?另外,它可以使用叉而不是使用git的分支來完成嗎?
我假設,從我讀過的所有文檔中,git中的分支的生命週期很短,不應該在生產環境中使用,在多個客戶的情況下使用TFVC時,這是不正確的。無限期地使用分支被認爲是不好的做法? – v1n1akabozo
這完全取決於你的決定。你可以創建和刪除臨時分支,但你也可以讓它們永生;您還可以決定是否僅將其更新爲快進或允許強制更新。在前一種情況下,你將不得不制定一些紀律,因爲這是不可逆轉的。例如,您錯誤地將特定於客戶的內容推送到您的'A',您必須將其恢復原狀,或在重新合併到客戶分支機構之前重置爲前一個點。 – max630
請注意,這些分支應該表示您的主服務器上的分支,如[此處]所述(https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches)。您不直接在該服務器上運行,而是使用本地跟蹤分支進行開發和合並,並且它們可能具有相同的名稱,但瞭解其差異很重要。 – max630