首先需釐清svn的分支以下幾個概念:
trunk: 主幹(可以理解為開發環境的**,平常做開發的工作目錄)
branches:從主幹拷貝了乙份**重新在svn伺服器上的建了個分支目錄(通常叫branch,一般與生產上的**保持同步)
tag:主幹版本標記(標識每次大的公升級版本號)。
我們專案目前的版本管理策略如下(可以根據自已的專案實際需要建立不同的版本管理策略):
1、系統在沒有上線之前,只有乙個主幹(trunk),所有開發人員在主幹上進行協同開發。
2、系統上線之後,在主幹的基礎上建立乙個分支,該分支上主要用於修復生產環境的bug,或者緊急新功能上線。主幹仍然進行新功能模組的開發。
3、每次生產環境的公升級,都從分支上進行打包部署。公升級完之後需將分支上改動的**及時合併到主幹上(開發人員常常忘記,切記)。
4、新功能在主幹上開發好了,需要進行一次大的公升級,可以先將主幹打上乙個tag做為大版本號,並且同時在此基礎上建立乙個對應的分支,然後切換到分支上進行打包部署,這個版本的生產**維護也在分支上。
原則:分支用於生產**維護,主幹用於平時開發,tag用於主幹大版本的標記。
由於我們專案由好幾個子系統構成乙個大的集群系統,系統之間的版本統一就顯得很重要。所以每次上線,即使相關子系統沒有**改動,也需要重新建立乙個分支版本以適應其它子系統的版本改動。
說了這麼多之後,來說下具體分支合併到主幹上的操作,因為這部分最容易出錯:
合併根據目標不同分為2種:
1、分支合併到主幹:主要用在修復完生產bug,並上線之後。需把改動的**合併到主幹上。
2、主幹合併到分支:公用的邏輯改動,需反映到所有並行的分支上。
注意:合併是要在目標目錄上進行操作的,如:分支合併到主幹(主幹為目標),需切換到主幹上操作合併功能,主幹合併到分支(分支為目標),需切換到分支上進行操作。
分支合併到主幹的具體步驟:
1、主幹目錄右鍵選擇合併
出現以上6個合併選項,
第乙個選項:合併指定的版本,可以是從分支合併到主幹,也可以是主幹合併的版本,主要作用把分支的部份修改合併到主幹上。
第二個選項:復興分支,這裡會把分支上所有的需改都合併到主幹上。如果只想合併修改的一部分,並適合這項。
第三個選項:將主幹上的修改合併到分支。
第四個選項:2個不同的分支合併,但其實也可以是分支和主幹的合併,只要from選擇為主幹就行。
通常選擇第一項或第四項進行操作,這裡需要注意的是:
這裡其實就是比對to版本和from版本的差異,並把差異合併
到to的當前版本(head版本)中去。
注:如果要把分支所有的修改合併到主幹上,from需要選擇主幹建立見分支時的版本號,to選擇分支最新版本(head版本)就行了。
如果from也選擇主幹head版本,to也選擇head版本,就會把所有分支與主幹不同的差異覆蓋到當前主幹上來。造成主幹的檔案被分支覆蓋。
合併當中出現:
no uncommited modified :表示當前版本還有沒有提交的檔案,如果不需要提交就選擇revert.
working copy at a single version:表示當前目錄沒有從svn伺服器更新最新的版本。update下後在操作就行了。
eclipse svn 分支合併到主幹
首先需釐清svn的分支以下幾個概念 trunk 主幹 可以理解為開發環境的 平常做開發的工作目錄 branches 從主幹拷貝了乙份 重新在svn伺服器上的建了個分支目錄 通常叫branch,一般與生產上的 保持同步 tag 主幹版本標記 標識每次大的公升級版本號 我們專案目前的版本管理策略如下 可...
git子分支合併主分支,主分支合併子分支
子分支合併主分支 當前在login子分支 git status 檢視未提交的檔案 git add 提交到暫存區 git commit m 提交說明 提交到倉庫區 git merge master 在子分支 合併 主分支 git push 提交更新遠端倉庫 login 的 如果git遠端倉庫不存在lo...
分支管理 建立分支 合併分支
分支名前面有 代表此分支是當前所在分支 常用命令 步驟 建立分支 git brabch 分支名 檢視所有分支 git branch 切換到指定分支 git checkout 指定的分支名 代表當前所在分支 在自己的分支上進行修改並push到遠端倉庫對應的分支,最後的push的命令 git push ...