前兩篇介紹了 git基本概念 和 具體的規範,本篇針對不一樣的使用場景作演示。git
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
git commit --amend 修改最近一次提交; git rebase -i 整理提交開發
再次強調:若是commit已經提交到遠程git倉庫,必定不要再進行整理合並commit。get
舉例說明it
基於develop分支建立一個功能分支,名稱爲feature/feature1;
git checkout -b feature/feature1
新建一個文件test.txt,提交;
git commit -m ‘add test.txt file’
修改文件test.txt,添加一行內容,提交;
git commit -m ‘update text.txt file, append content: love vae music’
發現上一步添加的內容錯誤,想修改內容,但不添加新的commit 修改成正確的內容;
git commit —amend; 會彈出修改窗口,修改註釋,若是不變,直接回車;
連續提交3個commit,但想合併爲1個commit;
使用git log,肯定要rebase的commit-id;
git rebase -i df87607d5dd24c0a73f23284e6988d6d32c0d3a4 顯示編輯窗口
進行編輯,修改以下:
最終結果只會保留commit1:
從遠程拉取develop分支: git checkout -b <分支名稱> origin/<分支名稱> 拉取並關聯遠程分支
若是要開發新功能,基於develop分支建立feature分支: git checkout -b feature/feature1
若是要修復線上緊急bug,基於master分支建立hotfix分支: git checkout -b hotfix/hotfix1
基於develop分支建立feature分支;
開發完成後,整理本身的commit,把無心義的commit進行合併;
準備在下一次迭代上線,整理完成後,合併到develop分支;
不許備在下一次迭代上線,整理完成後,push當前分支到遠程git倉庫,等待準備上線時,再合併到develop分支: git push origin feature/feature1:feature/feature1
合併到develop分支前,必定要通過本地測試!
總體上,要有明確的上線計劃,肯定每次上線哪些功能;
只有確認在下一次版本上線的feature才能合併到develop分支;
提交測試前,確保全部人的代碼修改都已提交到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
基於master分支,建立hotfix分支 git checkout -b hotfix/hotfix1
修復完成後,finish hotfix,合併代碼到master和develop分支;