前言
一個(gè)項(xiàng)目的分支戳吝,一般包括主干 master 和 開發(fā)分支 dev罢浇,以及若干臨時(shí)分支
分支命名規(guī)范
分支: 命名: 說明:
主分支 master 主分支,所有提供給用戶使用的正式版本,都在這個(gè)主分支上發(fā)布
開發(fā)分支 dev 開發(fā)分支疟丙,永遠(yuǎn)是功能最新最全的分支
功能分支 feature-* 新功能分支余黎,某個(gè)功能點(diǎn)正在開發(fā)階段
發(fā)布版本 release-* 發(fā)布定期要上線的功能
修復(fù)分支 bug-* 修復(fù)線上代碼的 bug
驗(yàn)證分支 demo-* 技術(shù)調(diào)研重窟,完成后刪除該分支
關(guān)聯(lián)和操作遠(yuǎn)程分支
- 假設(shè)有一個(gè)遠(yuǎn)程分支為 dev,在本地建一個(gè)同名分支惧财,然后執(zhí)行下邊的 pull 操作(第一次執(zhí)行pull操作)巡扇,就可以完成本地和遠(yuǎn)程分支的關(guān)聯(lián)。
- 以后就可以進(jìn)行日常的 pull 和 push 操作垮衷,注意需要多一個(gè) origin 關(guān)鍵字
建立本地同名分支 git branch dev
拉取遠(yuǎn)程分支 git pull origin dev
推送遠(yuǎn)程分支 git push origin dev
git操作流程
//暫存
git add .
//提交
git commit -m fix-xxxxx(舉例)
//拉取最新
git pull
//處理沖突厅翔,重新返回開頭,操作帘靡,直到?jīng)]有沖突
//處理沖突完成知给,推送代碼
git push
commit 命名規(guī)范
- feat: 一個(gè)新功能
- fix: 一個(gè) bug 修復(fù)
- docs: 僅僅修改了文檔,比如 README, CHANGELOG, CONTRIBUTE 等
- style: 不影響代碼邏輯的修改描姚,比如空格涩赢、格式縮進(jìn)、刪除分號(hào)等
- refactor: 代碼重構(gòu)
- perf: 提升性能的改動(dòng)
- test: 增加或修改測試
- chore: 改變構(gòu)建流程轩勘、或者增加輔助工具筒扒、依賴庫等
多人協(xié)作模式
add commit pull push 的順序
- 一般來說,本地開發(fā)時(shí)要隨時(shí)進(jìn)行 add 操作绊寻,執(zhí)行 add .
- 一般來說花墩,每天需要將最新的開發(fā)分支 dev悬秉,進(jìn)行一次遠(yuǎn)程提交(可能有merge)
- 對(duì)于 commit 和 pull 操作的先后順序,有兩個(gè)方案冰蘑,如下:
- 方案一和泌,在本地修改與遠(yuǎn)程代碼無沖突的情況下,優(yōu)先使用:pull->commit->push 的流程
- 方案二祠肥,在本地修改與遠(yuǎn)程代碼有沖突的情況下武氓,優(yōu)先使用:commit->pull->push 的流程
- 盡量使用方案一,因?yàn)榉桨付?huì)增加不必要的 merge 記錄
- 最后進(jìn)行 push
pull 后的沖突處理
- 如果 pull 或 push 失敗報(bào)錯(cuò)仇箱,則因?yàn)檫h(yuǎn)程分支比你的本地更新县恕,需要先用 git pull 試圖合并
- 如果合并有沖突,則解決沖突剂桥,并在本地重新 commit忠烛;
- 沒有沖突或者解決掉沖突后,再用 push 推送遠(yuǎn)程分支
沖突處理
- 當(dāng)執(zhí)行 pull权逗、push美尸、merge等操作時(shí),如果發(fā)生沖突旬迹,==git會(huì)在命令行提示并列出所有的沖突文件==
- 這時(shí)火惊,需要在項(xiàng)目中查看每一個(gè)沖突文件,==git會(huì)對(duì)文件中各處的沖突進(jìn)行標(biāo)記==奔垦,標(biāo)記一般為這樣:
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> dev
- 其中屹耐,<<<<<<< HEAD 和 ======= 之間的內(nèi)容,為遠(yuǎn)程分支版本
- ======= 和 >>>>>>> dev之間的內(nèi)容椿猎,為本地開發(fā)分支版本
- 你要做的就是選擇使用其中的一個(gè)版本惶岭,同時(shí)將另一個(gè)版本的代碼刪除掉
- 處理該文件所有的標(biāo)記沖突
- 處理git命令提示的所有沖突文件中的沖突
- 處理完成后,重新進(jìn)行 pull 或 commit 操作
- 如果沒有再報(bào)錯(cuò)犯眠,就可以執(zhí)行push