Git 小团队协作流程

Git 和代码托管系统的使用,除了掌握这 2 个工具本身的用法,多人协作时还需要协商好协作流程。这 2 个工具的用法非常灵活,没有一种方式能够放之四海而皆准,需要结合团队实际需要制定相符的协作流程。
几个人组成的小团队,最简单的方式是在代码托管系统仅保留一个用来协作的 中心仓库,所有人从这个仓库 clone 到本地,不做 fork 操作。每个人在本地仓库的新分支上开发,然后 push 到中心仓库,再合并到 master 分支。这里介绍这种协作方式涉及的一些基本步骤。

一、软件安装及账号配置

1. 安装 Git 命令工具 -- 必装

安装后执行以下几步配置(右键桌面 -> Git Bash Here)

git config --global user.name 
git config --global user.email 
git config --global core.longpaths true
git config --global core.autocrlf false
2. TortoiseGit 图形 -- 可选
3. 生成密钥对 -- 公私钥对存放在 ~/.ssh 目录
ssh-keygen -t rsa
4. 将公钥 ~/.ssh/id_rsa.pub 配置到代码托管系统

二、克隆仓库

5. 从代码托管系统克隆仓库到本地
git clone [email protected]:gopl/ci.git

三、新功能开发/修改 bug(每次新功能开发,重复以下步骤)

6. 创建新分支

首先从远程仓库拉取 master 分支最新代码作为起点,然后从 master 分支创建新分支;这里以分支名 new_feature 为例,通常分支名与开发的内容相关,相对独立的功能应该放在一个分支。假设当前处于 master 分支中,否者需要先执行 git checkout master 切换到 master。

git pull
git branch new_feature
7. 切换到新分支
git checkout new_feature
8. 修改代码提交到本地仓库的 new_feature 分支(可能会多次修改文件并提交)
touch hello.txt
git add hello.txt
git commit -m "hello"
9. 开发完成后,将新分支推送到代码托管系统
git fetch --all
git merge orgin/master -- 这一步是没有 MR 构建情况下的临时处理方式:保障代码合入 mater 后编译正常;这一步可能存在代码冲突要解决。 
git push --set-upstream origin new_feature
10. 在代码托管系统上提交 Merge Request

Git 只是追踪文本行的,不会理解程序语言的语法,可能存在的情况是:允许 Merge,但 Merge 后代码语法错误。正常情况下在提交 MR 时应该有一步 MR 构建,确保 Merge 后代码能正常编译。

选择从 new_feature 到 master

11. 如果提交 MR 时代码冲突,需要将 orgin/master pull 到本地,再本地解决冲突,然后再提交 MR
12. 在代码托管系统上评审后执行 Merge -- 通常就是在这里做代码 Review
13. 如果代码托管系统上已经 Merge,删除 new_feature 分支 -- 可选
git checkout master
git master --all
git branch -d new_feature
git push origin -d new_feature
14. 本地仓库同步最新代码

确保当前工作目录是干净的, 切换回 master 分支,更新最新代码;如果进行新功能开发,重新从第 6 步开始

git status
git checkout master
git pull

参考资料:

  • 《Git 团队协作》--Emma Jane Hogbin Westby

你可能感兴趣的:(Git 小团队协作流程)