平時合併代碼都是用界面工具 GitHub Desktop,但時間長了後我發現幾個顯著的問題:
比如把代碼和到測試分支後,我有時候會忘記切回到特性分支(在測試環境看一下運行效果啥的),寫了半天要提交的時候才發現是測試分支,這導致我每次都會刻意檢查下
有時候會忘了哪個環境,測試還是重構測試?涉及了那些項目?分支名都是什麼?有時候會有一些臨時需求、線上緊急問題,這些東西靠人去記憶還是耗費心力的。
多個項目發版是操作繁瑣,切換到主分支,拉取主分支代碼。切換到特性分支後;將主分支和到特性分支。切換到測試分支;再將特性分支合到測試分支,在切回到特性分支
基於上述的需求我做了個功能頁面,可以記錄迭代當中涉及的項目信息,並支持批量的 git 操作。
添加項目
選擇項目(可多個)並輸入分支名後,點擊確定後會執行真實的 git 命令操作,等同於
當前分支就是迭代分支則跳過
不是 master 分支,則執行
git checkout master
拉取遠程代碼(GithubDesktop 直接創建分支則不會拉取遠程分支) 執行
git pull
創建分支 執行
checkout -b ${item.branchName}
推送分支
push --set-upstream origin ${item.branchName}
第一次執行會要求登錄
會返回執行結果,因爲這些命令不管是成功還是失敗都會返回一些信息
實際上添加成功了,但推送到遠程失敗了,我在公司使用時沒這個問題
多個項目則會出現多選框。
執行 git 是發送請求給 node 服務器,藉助sf-inner-service。
從主分支拉取
執行 git 命令如下
當前分支不是 master,
checkout master
拉取主分支
pull
切換到特性分支
checkout ${item.branchName}
混合 master
merge master
推送
push
檢測衝突
diff --name-only --diff-filter=U"
前端會提示檢測衝突,有衝突則可以在 VSCode 打開衝突文件,否則回到迭代分支
合併到
先選擇要合併到的分支,這個操作會被記錄
執行 git 命令如下
- 切換到要合併的分支
checkout ${branch}
- 拉取當前分支
pull
- 混合特性分支
${item.branchName}
- 推送代碼
push
會檢測衝突,有衝突則可以在 VSCode 打開文件,沒有衝突則可以切換到迭代分支
切換到迭代分支
執行 git 命令如下 checkout ${item.branchName}
注意,如果上一個執行命令執行失敗,下一個也不會成功,比如合併代碼時候有衝突是無法提交成功的
上述功能在一切正常的情況下體驗是最好的,一旦發生問題,還是要藉助 git 工具,但對於日常開發,衝突也是不常見的
打標籤
記錄一下使用的環境
git 倉庫地址,https://github.com/xiaodun/sf-notes
體驗上述功能要先添加項目,和 sf-mock 有關的功能可以略過,然後閱讀“迭代開發”部分即可
前端工程化文章推薦: