为方便阅读,2020年补充内容:
首先介绍背景:
- 程序员使用master分支,QA使用qamaster分支。这样对于测试来说相当于“版本冻结”。当我接手某项目时,发现竟然没有QA专用分支,相当于每次为SNAPSHOT版本测试,QA心情可想而知。
- 由于压根没有qamaster分支,需要先创建出来,再推到远端。git log查看定位到master中需要测试的版本,假设它的提交id是commitId。这样做的原因是,在commitId之后的提交都属于SNAPSHOT内容,比如下一个版本需求的代码。
- 项目组同时使用gerrit和git,是否需要为gerrit也创建一个qamaster呢?不用!因为gerrit的分支是自动从origin同步过去的,不需要本地推。
以下是2018年帖子的内容:
因为最新的提交不想放到分支qamaster中去, 从git log中找到想要的提交,commitId
新建qamaster分支,它的最新的一次提交是commitId:
git branch qamaster commitId
切换到该分支,检查提交是否是自己想要的
git checkout qamaster
git log
推到远端去
git push origin qamaster
执行结果:
- [new branch] qamaster -> qamaster
因为我们同时用了gerrit,gerrit的qamaster是自动从origin同步过去的不需要本地推。