Git多人协作开发流程(Feature-branch)
Git多人协作开发流程
1. 克隆远程仓库
首先,每个开发者需要从远程仓库克隆项目到本地。
1 | git clone <远程仓库URL> |
具体的步骤可以参考GitHub帮助文档-Cloning a repository。
注意事项
从GitHub克隆仓库,配置SSH公钥通常是一个很好的实践。具体可以参考GitHub SSH公钥配置。
远程分支在本地,通常是以
origin/branch-name
的形式表示。它的作用只是指示远程分支的开发进度,并不会干扰本地分支。
实际上只有在远程仓库上创建了分支,或者将本地分支push到了远程仓库,才会有远程分支。
2. 创建并切换分支
为避免直接在主分支上工作,每个开发者应创建自己的特性分支。
1 | git checkout -b feature-branch |
上述命令会创建一个名为feature-branch
的新分支,并立即切换到该分支。如果只是创建一个新分支,不切换到该分支,可使用git branch feature-branch
。
3. 开发与提交
在特性分支上进行开发,定期提交代码。
1 | git add . |
4. 同步远程仓库更新
在开发过程中,需定期从远程主分支获取最新代码并合并到本地,避免后续合并冲突!!
1 | git fetch origin main |
当然,上述的命令也可以通过一条命令实现:
1 | git pull origin main |
具体的步骤可以参考GitHub帮助文档-Syncing a fork。
5. 推送分支到远程仓库
完成某段功能时,将本地分支推送到远程仓库。
1 | git push origin feature-branch |
6. 创建 Pull Request
在GitHub等平台上,从自己的特性分支向主分支发起Pull Request(PR)。
7. 代码审查
团队成员审查PR中的代码变更,可提出修改建议或直接在网页上进行评论。
8. 修改与反馈
根据审查意见,在本地修改代码后提交,并推送到远程分支。
1 | git add . # 添加修改 |
9. 合并 Pull Request
审查通过后,项目管理员或有权限的成员合并PR到主分支。
10. 删除已合并的分支(可选)
保持仓库整洁,合并后可考虑删除远程和本地的特性分支。
1 | git branch -d feature-branch |
11. 更新本地主分支
最后,拉取并合并最新的主分支到本地,为下一轮开发做准备。
1 | git checkout main |
总结:
Git多人开发是较为复杂的话题,这里介绍一种基础的模式,即
Feature-branch
的模式,适合小型团队.进阶到大型团队,可能会需要更加深入的Git flow
开发流.多人协作开发时,主分支是公共的,所以需要使用分支来隔离开发。因此通常会创建开发分支。开发过程中,不断关注当前远程主分支的最新状态,减少发生合并冲突的可能.在本地完成开发
在本地开发完成后,再将本地分支推送到远程开发分支,申请合并到远程主分支即可。
参考链接:Feature-branch开发流 GIT-FLOW开发流
可能遇到的问题:
冲突: 分支合并时,如果存在冲突,需要手动解决。这里我推荐使用
IDE的Git工具,而不是git diff命令.它会自动提示冲突的位置,有更强的文本比对能力。也更加直观.以Jetbrains为例,相关的插件可以参考Git插件。开发过程需要切换分支,但需要保留工作区的状态,可以使用
git stash
命令。具体可以参考Git stash命令。另外强烈推荐一个Git命令的学习网站,它提供可视化的Git分支树示,方便理解Git的分支管理流程: Git-Visualize or
Learning-git-branching.根据我的经验,大约三四个小时可以刷完,通过项目中不断使用相信能有较好的掌握.