git分支管理和工做流規範:不一樣場景細化和演示

前兩篇介紹了 git基本概念具體的規範,本篇針對不一樣的使用場景作演示。git

分支

分支命名
  • master 分支名稱保持不變
  • develop 分支名稱保持不變
  • feature/<分支名稱> 功能分支
  • release/<分支名稱> 待上線分支
  • hotfix/<分支名稱> 線上緊急修復分支
拉取遠程分支

git checkout -b <分支名稱> origin/<分支名稱> 拉取並關聯遠程分支app

建立新分支 

git checkout -b <分支名稱>  建立新分支並切換到新分支post

提交備註規範

首行,簡明扼要地描述更新內容; 空出一行; 以後,詳細描述更新內容。測試

若是對應jira的問題,填寫jira路徑:issue:http://jira.n.xiaomi.com/test13d

舉例cdn

修復bug,工單詳情頁面,工單記錄頁面,客服頭像不顯示
<空行佔位符>
致使緣由:代碼邏輯考慮不全
jira: http://jira.n.xiaomi.com/test1blog

如何整理本身的commit,保持commit清晰

git commit --amend 修改最近一次提交; git rebase  -i  整理提交開發

  • edit,編輯某一次提交的備註;
  • squash,把當前commit向前合併,一直合併到pick爲止;
  • fixup,和squash很是相似,惟一的區別就是,fixup會忽略當前commit的信息;

再次強調:若是commit已經提交到遠程git倉庫,必定不要再進行整理合並commit。get

舉例說明it

  1. 基於develop分支建立一個功能分支,名稱爲feature/feature1;

    git checkout -b feature/feature1

  2. 新建一個文件test.txt,提交;

    git commit -m ‘add test.txt file’

  3. 修改文件test.txt,添加一行內容,提交;

    git commit -m ‘update text.txt file, append content: love vae music’

  4. 發現上一步添加的內容錯誤,想修改內容,但不添加新的commit 修改成正確的內容;

    git commit —amend; 會彈出修改窗口,修改註釋,若是不變,直接回車;

  5. 連續提交3個commit,但想合併爲1個commit;

  6. 使用git log,肯定要rebase的commit-id;

  7. git rebase -i df87607d5dd24c0a73f23284e6988d6d32c0d3a4 顯示編輯窗口

  8. 進行編輯,修改以下:

  9. 最終結果只會保留commit1:

新人加入,如何加入開發

從遠程拉取develop分支: git checkout -b <分支名稱> origin/<分支名稱> 拉取並關聯遠程分支

若是要開發新功能,基於develop分支建立feature分支: git checkout -b feature/feature1

若是要修復線上緊急bug,基於master分支建立hotfix分支: git checkout -b hotfix/hotfix1

開發一個feature

基於develop分支建立feature分支;

開發完成後,整理本身的commit,把無心義的commit進行合併;

準備在下一次迭代上線,整理完成後,合併到develop分支;

不許備在下一次迭代上線,整理完成後,push當前分支到遠程git倉庫,等待準備上線時,再合併到develop分支: git push origin feature/feature1:feature/feature1

合併到develop分支前,必定要通過本地測試!

肯定版本上線計劃及上線

總體上,要有明確的上線計劃,肯定每次上線哪些功能;

只有確認在下一次版本上線的feature才能合併到develop分支;

提交測試,修復測試反饋的bug

提交測試前,確保全部人的代碼修改都已提交到develop分支;

基於develop分支,建立release分支: git checkout -b release/release1

發佈release/release1分支到測試環境,測試人員進行測試;

測試過程當中發現的bug,直接在release分支進行修復並提交;

測試完成,確認上線,合併代碼到master分支和develop分支,用release分支名打Tag,刪除release分支: git tag release.1.1.1 git branch -d release/release1

修復線上bug

基於master分支,建立hotfix分支 git checkout -b hotfix/hotfix1

修復完成後,finish hotfix,合併代碼到master和develop分支;

情情說
相關文章
相關標籤/搜索