目录
1. TeamLead 规划源代码架构、开发分支
提前规划好 哪个 feature 分支,分配给哪位组员
前置准备工作:
- gittee 仓库创建,作为 源代码
- team leader 在本地创建自己的工作文件夹;将项目源代码 clone 到本地仓库
准备本地开发分支:
-
team leader 在本地创建 dev 分支(develop 分支/开发分支);并推送到远程仓库。
要基于 master,创建 develop,指的是:创建 develop 时,HEAD 要指向 master:
Bug:
DeBug:
*刚创建的 git 仓库默认的 master 分支要在第一次有效的 commit 之后才会真正建立,否则就像你声明了个对象但没初始化一样。
所以,新建一个 readme.md ,完成一次 commit;然后再创建新的 dev 分支
推送本地开发分支到远程仓库(完成后,在 Gittee 查看):
Bug:
DeBug:
问题可能出现在 oschina 中的 README.md 文件不在本地代码目录中,所以我们需要本地也有,不然的话就会冲突。
可以解决的方案应该你已经明白了。使用的是直接加入参数 -f 也可以,但是太过于粗暴,后果可能会什么都同步同步,一般不建议这样。那么最简单的方法如下(命令行表示,拉取远程库 origin 到 master 分支):
然后,推送 dev 分支到远程仓库:
2. team leader 或项目经理 准备好 feature 分支
teamleader 切换到 develop 分支,根据规划,创建 功能分支 feature:
-
首先,本地仓库切换到 dev 分支
切换前后,使用 git branch 确认当前所处分支
-
创建 feature 分支:
创建两个 feature;
创建完成后,用 git branch 确认所有分支
基于 develop 创建 feature 分支,指的是:创建 feature 分支时,HEAD 要指向 develop(见下图)
将创建的 feature 分支,推送到远程仓库
可以使用 --all ,来推送所有的分支到远程仓库
3. 开发 feature
以上分支准备好以后,分配不同的员工,去开发不同的 feature:
如何在员工文件夹下 clone feature 分支?并且切换到 对应的 feature 分支
Bug:
员工在 clone 远程仓库后,看不到待切换的 feature 分支
DeBug:
需要先拉取远程仓库,才能看到。
不同员工拉取各自负责的 feature 远程分支,在本地开发; feature 分支开发完以后,推送到 远程仓库的 对应 feature 分支:
add, commit, push 三步:
员工发起申请(pull request),申请 合并 feature 分支上的代码 至 develop 分支:
4. 至此:在 develop 分支可以看到 开发的 feature 内容
一般,develop 分支开发一段时间后,才会进到下一步;进到 master 之前,需要 先准备 预发布分支(也是 测试分支)
5. 测试代码(在 release 分支/预发布分支)
team leader 在本地仓库,拉取远程仓库的 develop 分支:
git pull --progress -v --no--rebase "origin" develop
team leader 基于 dev 分支 创建 release_1p0p1分支;测试员工基于 release 预发布分支测试。
team leader 将 release_1p0p1分支 push 至远程仓库:
git push --all --progress "origin"
或 git push "origin"
测试员工,拉取远程仓库;然后,切换到 release_1p0p1 分支:
Bug:
没有进到 .git 对应的文件夹下:
DeBug:
进到 .git 对应的文件夹下;
先 pull 远程仓库所有分支,也就是 “origin”
然后切换到 release 分支
测试完成后,把 release 分支推到远程仓库:
推送时,使用如下两种方式指定分支:
- 可以不写,默认是推送当前的分支,也就是 release 分支
- 也可以明确写上推送哪个分支
6. 测试完成,达到里程碑;创建标签,发布
请 team leader 在远程仓库端,切换到 release 分支,然后,在 release 分支下:
- 测试人员提交 release 分支的 pull request
- team leader 合并 release 分支到 master 分支(可使用如下命令行完成合并)
team leader 在自己的文件夹下(本地仓库),切换到 master 分支:
- 然后,拉取远程仓库的 master 分支到本地;
- 然后,在本地仓库下,创建标签 打tag 1.0.1_release
- 然后,推送本地 master 分支到远程仓库(本次推送,需要包括标签)
7. 出现 bug 了,怎么处理
- team leader 在本地仓库创建 hotfix 分支 hotfix_1.0.2,然后,把当前分支推送到远程端
- 然后,切换到 hotfix 分支;马上进行修复(一般, team leader 自己直接 快速完成紧急修复)
- 修复之后,将代码提交到 hotfix 分支;然后,推送到远程端
- team leader 在远程仓库,通过 pull request 把分支合并进 master 分支
- team leader 回到本地仓库,先拉取 master 分支,同步过来;
然后,在master 分支,重新打标签 打tag 1.0.2_release
然后,推送本地master分支到远程仓库(本次推送,需要包括标签)
参考链接:
NA