Git多分支開發上線合併問題
阿新 • • 發佈:2019-02-07
一、專案背景:
專案AB分支同時進行開發時,A分支開發過程中有其他分支B上線,並且B分支上線版本已同步(merge)到master,則須合併已上線版本到正在開發的分支A上,避免A分支上線時覆蓋B分支的程式碼,導致功能倒退。
二、命令列合併步驟:
方案一:
1.克隆配置庫到本地:
git clone 【git url】 【本地路徑】
2.切換到開發分支A:
git checkout 【開發分支】
3.合併master到開發分支(因為B已經同步到master,於是將master合併到A,保證A上涵蓋B以上線的最新程式碼):
git merge --no-ff master
4.將合併後代碼推送到遠端庫:
git push origin 【開發分支】
以上步即已經完成B分支上線後,將程式碼同步到master,再將master程式碼合併給A的操作。根據公司要求,還需要打tag標識。
5.打合並後標籤,合併標籤命名規則:tag/Tag_git庫名_模組名稱_三位版本名稱_merge_四位版本名稱
例如:tag/Tag_pmo_testgit-dwf_6-0-11_merge_6-0-9-2
git tag -a 【mergetagname】 -m 'create merge tag ,name is 【mergetagname】'
6..將標籤推送到遠端庫:
git push origin 【mergetagname】
7.手工合併完成
方案二:
同事介紹了一個類似於svn client的git工具,可通過UI頁面完成以上操作。
1、比較差異
2、解決衝突-對比本地和遠端程式碼,選擇兩邊有效程式碼分別複製到有效區域,點選“解決衝突”即可。
3、提交分支A程式碼
三、分支合併
背景:AB分支分別開發兩個系統功能,結果將應寫到B分支的程式碼,寫到了A分支上。
解決方案:
1、照常將A分支上程式碼提交,並push到遠端。
2、切換到B分支,執行merge操作,將A分支中,開發的程式碼合併到B上,B提交測試即可。
git
checkout B
git
merge A
ps:後期附送工具下載連結 最後再附送一個萬能git提交忽略.setting等檔案的配置。拷貝替換本地gitignore檔案即可。
ps:後期附送工具下載連結 最後再附送一個萬能git提交忽略.setting等檔案的配置。拷貝替換本地gitignore檔案即可。
# maven ignore
target/
# eclipse ignore
.settings/
.project
.classpath
# idea ignore
.idea/
*.ipr
*.iml
*.iws
# temp ignore
*.log
*.cache
*.diff
*.patch
*.tmp
# system ignore
.DS_Store
Thumbs.db
# package ignore (optional)
# *.jar
# *.war
# *.zip
# *.tar
# *.tar.gz
/log