多人協作使用Git的基本約定
一. 按規(guī)定格式提交 commit message
使用 commitizen 等工具提交符合 Angular 規(guī)范的 commit message近忙。
要求至少包含 header萌壳,即: <type>(<scope>): <subject>菇夸。具體可根據團隊內部約定進行提交讹堤。
二. git 分支管理策略
1. 主分支 master
所有提供給用戶使用的正式版本拙友,都在這個主分支上發(fā)布呈础。
2. 開發(fā)用分支 dev
用于日常開發(fā)庇楞。如果想正式對外發(fā)布钦无,就在 master 分支上丛忆,對 dev 分支進行『合并』(merge)祠汇。
3. 臨時分支
新的臨時分支從 origin/master 拉取, 保證代碼最新。使用完畢后熄诡,需要及時刪除可很。
臨時分支包括以下兩種:
4. 功能分支
作用為開發(fā)某個特定功能,從 dev 分支上分出來凰浮,開發(fā)完成后需要再合入 dev 分支我抠。
命名規(guī)范:feature-{功能名稱}-{姓名縮寫}苇本,如 feature-template-lt
5. bug 修復分支
作用為修復某個線上 bug,從 master 分支上分出來菜拓,修復結束后再合入 dev 和 master 分支瓣窄。命名規(guī)范:hotfix-{功能名稱}-{姓名縮寫},如 hotfix-template-lt
注:bug 修復分支需要先 merge origin master 以獲取最新修改纳鼎。且該類型的分支只能被合并俺夕,不能主動合并除了 master 分支之外的分支,以避免誤帶上別的分支贱鄙。
三. 臨時提交
當有臨時提交代碼的需求但是 commit message 不知如何寫或者想合并多個 commit 時劝贸,使用以下兩種方式(具體用法自行 Google):
git rebase -i (pick、squash)
git commit --amend
另逗宁,merge 代碼時如想合并多個 commit映九,可使用 git merge --squash。
四. Pull Request
此處涉及 code review 策略瞎颗,此處給出整體流程建議:在代碼需要合并入 dev 和 master 分支時發(fā)起 PR件甥,請求同事進行 review,確認無誤后合并入相應分支哼拔。
Git的原理和基本使用
一. 原理
1. 基本概念
- Workspace:開發(fā)者工作區(qū)
- Index / Stage:暫存區(qū)/緩存區(qū)
- Repository:倉庫區(qū)(或本地倉庫)
- Remote:遠程倉庫
2. 常用命令示意圖
對應這張圖可以知道 pull,fetch,checkout,push,commit,add的多個命令怎么進行操作了 感謝大佬提供的Git命令操作圖
3. 列舉工作中常用的幾個git命令
新增文件的命令:git add file或者git add .
提交文件的命令:git commit –m或者git commit –a
查看工作區(qū)狀況:git status –s
拉取合并遠程分支的操作:git fetch/git merge或者git pull
查看提交記錄命令:git log
4. 提交時發(fā)生沖突引有,如何解決?
為什么會產生沖突
因為在合并分支的時候管挟,master分支和dev分支恰好有人都修改了同一個文件轿曙,GIT不知道應該以哪一個人的文件為準,所以就產生了沖突了僻孝。 兩個分支相同文件相同位置的的不同操作导帝!
如何解決?
發(fā)生沖突穿铆,在IDE里面一般都是對比本地文件和遠程分支的文件您单,然后把遠程分支上文件的內容手工修改到本地文件,然后再提交沖突的文件使其保證與遠程分支的文件一致荞雏,這樣才會消除沖突虐秦,然后再提交自己修改的部分。特別要注意下凤优,修改本地沖突文件使其與遠程倉庫的文件保持一致后悦陋,需要提交后才能消除沖突,否則無法繼續(xù)提交筑辨。必要時可與同事交流俺驶,消除沖突。
如何盡可能避免沖突
- 嚴格遵守多人協作策略進行代碼的管理棍辕。
- 修改bug后或者開發(fā)完新的需求后暮现,提交代碼或者融合代碼之前一定要再次pull對應的遠程分支还绘,消除沖突后再進行代碼的提交。