獨立開發能夠避免代碼相互污染, 開發的都是本身分支上的代碼內容, 在獨立開發的過程當中這是最好的方式, 每一個人在本身開發的分支和本身負責的模塊上進行代碼提交, 缺點也顯而易見, 如果須要調度另外一我的開發的代碼塊功能, 則須要合併後新建分支進行測試, 最後將開發的功能塊整合在一個歸併倉庫(dev)中, 這個倉庫將會是你的測試歸併倉庫, 全部的代碼將會在這個倉庫裏面, 在測試完成後達成發版要求時, 將歸併倉庫(dev)的代碼發佈版本號至主倉庫(master), 這樣版本提交就出來了。python
# 準備將本地開發分支代碼同步至遠程倉庫並生成版本號提交
# 將本地代碼提交
>>> git add -A
>>> git commit -m 'commit message'
# 或者
>>> git commit -am 'commit message'
# 本地倉庫同步至我的遠程倉庫分支(能夠忽略合併的過程)
>>> git push [遠程倉庫名稱] [遠程分支名稱]
# ------------------- 發起分支合併至遠程 dev 請求 -------------------
# 推薦你是用新的倉庫進行如下操做, 在一個空文件夾執行git初始化以及遠程倉庫鏈接(高權限人員操做)
# 將遠程 master 分支 pull 至本地 master 分支(高權限人員操做)
>>> git checkout -b master [遠程倉庫名]/master
# 將遠程 dev 分支 pull 至本地 dev 分支(高權限人員操做)
>>> git checkout -b dev [遠程倉庫名]/dev
# 遠程分支 A/B/C 同步至到 本地A/B/C分支(高權限人員操做)
>>> git checkout -b [本地分支名-A] [遠程倉庫]/[遠程分支名-A]
>>> git checkout -b [本地分支名-B] [遠程倉庫]/[遠程分支名-B]
>>> git checkout -b [本地分支名-C] [遠程倉庫]/[遠程分支名-C]
# 合併至本地 dev 分支(可手動解決衝突)(高權限人員操做)
>>> git checkout dev
>>> git merge [本地分支名-A]
>>> git merge [本地分支名-B]
>>> git merge [本地分支名-C]
# dev 分支代碼推送到遠程 dev 分支, 合併工做完成(高權限人員操做)
>>> git push [遠程倉庫名] dev
# ------------------- 發佈版本號推送 -------------------
# 將本地 dev 分支不攜帶任何 commit 信息合併至本地 master 分支(高權限人員操做)
# 爲保證 master 分支上僅有版本號提交內容的commit
>>> git checkout master
>>> git merge --squash dev
>>> git add -A
>>> git commit -m 'Version: 10.2.4 發佈, 發佈時間: 2019年12月01日'
>>> git push [遠程倉庫名] master
複製代碼
這種管控模式便於將修改的代碼歸併後在本地測試, 也方便調度其餘人的的代碼塊封裝功能的函數等, 但在多人開發的同時, 有對相同文件修改的時候, 極容易形成合並衝突, 須要手動解決衝突並提交修改, 其中利弊, 自行取捨了。webpack
# 準備將本地開發分支代碼同步至遠程倉庫並生成版本號提交
# 將本地 dev 代碼提交
>>> git add -A
>>> git commit -m 'commit message'
# 或者
>>> git commit -am 'commit message'
# 合併遠程 dev 倉庫至本地 master, 在 merge 的時候須要對衝突的文件手動解決
>>> git checkout master
>>> git pull [遠程倉庫名] dev
>>> git merge dev
# 對合並後的 master 進行本地倉庫提交
>>> git commit -am 'commit massage'
# ------------------- 發起分支合併至遠程 dev 請求 -------------------
# 將本地 master 分支推送到遠程 dev 分支
>>> git push [遠程倉庫名] dev
# ------------------- 發佈版本號推送 -------------------
# 建立一個新的分支並關聯遠程 master 分支(高權限人員操做)
>>> git checkout -b [新的分支] [遠程倉庫]/master
# 將本地 master 分支不攜帶任何 commit 信息合併到 新的分支(高權限人員操做)
# 爲保證 master 分支上僅有版本號提交內容的commit
>>> git checkout [新的分支]
>>> git merge --squash master
>>> git add -A
>>> git commit -m 'Version: 10.2.4 發佈, 發佈時間: 2019年12月01日'
>>> git push [遠程倉庫名] master
複製代碼
git commit -m '[提交標識] 描述信息'
複製代碼
標識內容 | 標識描述 |
---|---|
FEAT | 新增功能 |
FIX | 修復bug |
DOCS | 修改文檔 |
REFACTOR | 代碼重構,未新增任何功能和修復任何bug |
BUILD | 改變構建流程,新增依賴庫、工具等(例如webpack修改) |
STYLE | 僅僅修改了空格、縮進等,不改變代碼邏輯 |
PERF | 改善性能和體現的修改 |
CHORE | 非src和test的修改 |
TEST | 測試用例的修改 |
CI | 自動化流程配置修改 |
REVERT | 回滾到上一個版本 |
INIT | 初始化項目 |
MERGE | 合併衝突分支 |
DELETE | 刪除操做 |