我使用git來開發和維護我的應用程序。爲少數客戶管理應用程序
我有一個問題,因爲我的應用程序使用,以5個客戶和他們每個人都有自己的配置,如標識,一些特殊的功能,CONFIGS等等
現在我寫了新的組件和需要將此組件添加到每個客戶端實例,我不知道如何正確執行此操作。
現在每個客戶都在不同的分支上,我知道這是不好的選擇。
如果我需要更新應用程序,我需要將代碼複製並粘貼到每個客戶端並將其推送到回購站。
我知道這是非常薄弱的,但如何正確地做到這一點?
我使用git來開發和維護我的應用程序。爲少數客戶管理應用程序
我有一個問題,因爲我的應用程序使用,以5個客戶和他們每個人都有自己的配置,如標識,一些特殊的功能,CONFIGS等等
現在我寫了新的組件和需要將此組件添加到每個客戶端實例,我不知道如何正確執行此操作。
現在每個客戶都在不同的分支上,我知道這是不好的選擇。
如果我需要更新應用程序,我需要將代碼複製並粘貼到每個客戶端並將其推送到回購站。
我知道這是非常薄弱的,但如何正確地做到這一點?
在密封底座之前,您可能不應該將應用程序分支到5個不同的分支。但是,如果他們不太遠的分歧,你有三種可能性:
應用更改,創建了一個補丁(git diff > patch
),復位(這樣你就可以檢查出),並應用在你的五個院院長(git apply patch
),
叉從master
一個新的分支,應用相應的修改,提交和git cherry-pick
,在每個分支機構的承諾(爲1相同的效果),然後刪除多餘的分支,
將更改應用於master
和然後git rebase
你的分支在此之上。這有一個好處,即編輯將是所有五個共同的單一提交。 See here實際引入重組。
1和2將您新提交的獨立副本放在五個分支歷史記錄的頂部。 3次嘗試在分叉之前擠壓新的提交。後者的一個副作用是從該日起的所有提交必須重新重建,因爲不能修改現有提交的父代。必須強制每個分支在3之後首次推送到存儲庫。詳細信息都在鏈接文檔中討論。
請注意,如果您做出了一些與您想要更新的內容相沖突的更爲激烈的更改,那麼這三種方式將會以不同的方式失敗,因此很有必要做好準備。
在其默認設置中只會立即拒絕修補程序,不作任何更改。您需要進一步調查爲什麼它不適用,或者使用相對安全的--reject
(請先閱讀手冊)。
將裝點故障點與<<<<<<<
=======
>>>>>>>
就像一個失敗的git merge
和你需要解決衝突並重新提交,或中止操作(它給你的建議是什麼命令來使用)。
會產生一些看起來很恐怖的衝突消息,你可能會結束更新中的幾個提交。再次,git
會試圖幫助如何繼續。
你總是有git reset --hard
,git cherry-pick --abort
和git rebase --abort
如果出現問題,以幫助您。如果您對使用它們感到不舒服,您也可以在對其進行更改之前製作每個分支機構當前狀態的副本(git branch backup
),然後將所有內容都退回git reset --hard backup
。