背景
-
work_portal工程下,master、demo、release、develop分支各自發展,他們各有不同的想法;
-
基於master生成的開發分支daily/1.0.0,合併至develop或release等分支進行想要測試時,出現超多衝突,而自己開發的地方只涉及幾個檔案或資料夾;
訴求
-
把自己的改動的檔案合併到目標分支並在Jenkins構建;
-
不想改那些不屬於自己開發時出現的衝突;
操作
基於master的開發分支daily/1.0.0,要合併至develop分支,然後Jenkins構建
-
所有改動都已提交,保持分支的乾淨狀態(working tree clean)
-
切換至develop分支,並保持develop為最新
git checkout develop
git pull
複製程式碼
3、基於develop分支新建一個temp分支,並切換到該分支上
git checkout -b develop_temp
複製程式碼
4、用daily/1.0.0指定檔案或資料夾替換
develop_temp的相應檔案
git checkout daily/1.0.0 <目標資料夾或目標檔名>
複製程式碼
- 如果此次開發只涉及src/routes/test資料夾下的檔案,則執行
git checkout daily/1.0.0 src/routes/test
複製程式碼
執行完此命令後,daily/1.0.0分支的src/routes/test下的檔案會替換develop_temp分支下相應的檔案
5、將本次checkout內容提交到develop_temp上
git commit -am“提交資訊”
複製程式碼
6、切換至develop分支
git checkout develop
複製程式碼
7、合併
git merge develop_temp
複製程式碼
如有衝突,也僅會是src/routes/test下的衝突
至此,合併指定檔案或資料夾操作結束
參考
p.s.
參考文章中是直接在develop上checkout daily/1.0.0裡的指定資料夾。由於checkout是直接替換,這樣做可能會丟失別人對這些資料夾下檔案的改動記錄,所以我增加了一個develop_temp。