目录
1. 常见的 Git 协作模型
1.1. “共同维护”模型
1.2. “并列仓库”模型
1.3. “分散贡献者”模型
2. 协作示例
2.1. 环境
2.2. 克隆仓库
2.3. 开发人员任务开发
2.4. 开发人员任务推送到远程仓库
2.5. 审核人员代码复读
2.6. 审核人员代码合并、同步官方仓库
尽管在使用 Git 时,人们经常提到在没有网络的飞机上编写代码这个例子,我认为 Git 真正的优点在于你可以私下里更多地尝试你的想法。你可以创建新的分支,思考代码中的新想法,并且在自己准备好了之后再连接其他仓库。 《Git 团队协作》
1. 常见的 Git 协作模型
1.1. “共同维护”模型
架构图:
时序图:
1.2. “并列仓库”模型
1.3. “分散贡献者”模型
2. 协作示例
2.1. 环境
2.2. 克隆仓库
审核员:
git clone https://github.com/webj2eedev/awesome-repo.git
cd awesome-repo/
git config user.name "admin"
git config user.email "admin@qq.com"
张三:
git clone https://github.com/webj2eedev/awesome-repo.git
cd awesome-repo/
git config user.name "zhangsan"
git config user.email "zhangsan@qq.com"
李四:
git clone https://github.com/webj2eedev/awesome-repo.git
cd awesome-repo/
git config user.name "lisi"
git config user.email "lisi@qq.com"
当前 Git 状态
2.3. 开发人员任务开发
张三:开发 iss53 任务
李四:开发 iss54 任务
当前 Git 状态
2.4. 开发人员任务推送到远程仓库
张三:推送 iss53 任务到远程仓库
git push -u origin iss53
李四:推送 iss54 任务
git push -u origin iss54
当前 Git 状态
2.5. 审核人员代码复读
拉取代码:
git fetch origin
查看差异:
git diff main..origin/iss53
git diff main..origin/iss54
当前 Git 状态
2.6. 审核人员代码合并、同步官方仓库
先看一眼“审核员”角度的 Git 状态
为了保持“主干”有一个线性、清晰的历史,审核人员将采用“变基”的方式合并代码。
// 合并 iss53
git checkout -b iss53 origin/iss53
git rebase main
git checkout main
git merge iss53
git branch -d iss53
// 合并 iss54
git checkout -b iss54 origin/iss54
git rebase main
git checkout main
git merge iss54
git branch -D iss54
// 推送
git push origin
// 清理工作
git push origin --delete iss53
git push origin --delete iss54
再先看一眼“审核员”角度的 Git 状态
历史清晰、干净
任务完成
参考资料:
《精通 Git 第二版》 https://git-scm.com/book/en/v2 《Git 团队协作》