在实际的工作开发中,面向的是团队协作的开发环境,跟自己独立开发还是有很大的不同的,接下来主要介绍在实际的工作中怎么使用git来进行协作开发
1.git迭代开发流程介绍
各个企业的迭代开发流程可能不一致,但大体上是类似的。
首先是主干分支main,main分支应该是这里面最全的代码分支,包含了所有的需求开发、特性开发、Bug修改等等,每一个软件的开发都是经过不断的迭代更新,逐渐完善的,可以理解为捏泥人,最开始只有骨架,然后不断的往上面填泥巴,最后再精雕细琢形成一个泥人,在捏完之后还需要对泥人进行养护,这就对应了软件上线的更新维护。
一般首先会从main主干分支拉出一个分支a,这个新的分支a就是在这段开发周期内所有代码上传的分支,当这一轮的开发周期结束,需求开发完成后,分支a就不能再添加代码了,这个时候j就需要将分支a和main主干分支进行merge
合并完之后又会从合并后的main分支拉出一个分支b,分支b就是发布分支,也是专门用于测试的分支,这段时间内,测试人员会进行测试,并发现BUG,并将BUG清单转给开发人员进行修改(一般这些bug也都会有编号,所以推送的message里有时候会用这些编号来声明修改的是哪些bug),修改完之后就可以发布这个版本,然后再次和main主干分支进行merge。
然后进入下一个迭代开发周期中,又重复这个过程,功能就越来越完善,直接上图
2.git迭代开发实际操作
首先我们会在本地创建一个分支,并让其跟踪远程的对应分支,这个分支就用于这个开发周期内你要完成的一些功能实现,
git checkout -b 本地分支名 远程分支名
这样创建一个跟踪远程dev开发分支的本地分支dev,由于这个跟踪的远程dev分支每个人都可以上传到这个分支,因此最好先要git pull将最新代码给拉取下来
然后就可以在本地的这个本地dev分支中进行你需要完成的功能代码编写。
写完代码也不能够直接的git push origin 本地分支 远程分支进行推送
而需要
git add /需要提交的文件/
git commit -m ""
将其提交到本地的分支中
然后再将其整个分支推送到远程仓库中,相当于在远程仓库又创建了一个新的分支
git push origin /本地分支名/
如果本地分支和远程分支名字重复,就可以使用
git push origin 本地分支名:自定义新分支名
实际开发环境不可能能够写完代码之间诶把代码上传,因此应该使用上述流程直接将整个本地分支推送到远程分支(在这个之前最好git pull)
使用对应的代码评审工具,通过后就可以发起合并请求MR,和代码检视CR,没通过就重复上述过程,通过了代码就被合并到对应的分支中。
3.git迭代开发操作演示
这是git的初始状态,也就是只有一个main主干分支
可以在github界面上看,也可以在命令行里看
chen@czc:~/AV_Development/Git_test/Git_test$ git branch -a
* main
remotes/origin/HEAD -> origin/main
remotes/origin/main
这个时候假设需要进行二期开发,负责人会拉一个新的分支dev
然后使用git pull 将其拉取下来
chen@czc:~/AV_Development/Git_test/Git_test$ git pull
g来自 github.com:halfrmon/Git_test
* [新分支] dev -> origin/dev
已经是最新的。
然后我们在本地创建一个分支,并让其跟踪远程的对应分支,同时切换到这个分支
chen@czc:~/AV_Development/Git_test/Git_test$ git checkout -b feature/dev origin/dev
分支 'feature/dev' 设置为跟踪来自 'origin' 的远程分支 'dev'。
切换到一个新分支 'feature/dev'
chen@czc:~/AV_Development/Git_test/Git_test$ git branch -vv
* feature/dev 0e66ed4 [origin/dev] 新分支提交
main 65f6ba7 [origin/main: 领先 1] 新分支修改
这个时候就能在这个分支下进行代码的编写或者修改,这里我们修改readme来模拟代码编写的过程
chen@czc:~/AV_Development/Git_test/Git_test$ git status
位于分支 feature/dev
您的分支与上游分支 'origin/dev' 一致。
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git restore <文件>..." 丢弃工作区的改动)
修改: README.md
这个时候就可以进行提交了,提交前还是要保持git pull的习惯,如果出现更改的代码coflict就要手动进行进行修改
然后我们一步一步提交上去
chen@czc:~/AV_Development/Git_test/Git_test$ git add .
chen@czc:~/AV_Development/Git_test/Git_test$ git commit -m "--bugfix == add new bugfix code"
[feature/dev 97d86be] --bugfix == add new bugfix code
1 file changed, 1 insertion(+), 1 deletion(-)
chen@czc:~/AV_Development/Git_test/Git_test$ git status
位于分支 feature/dev
您的分支领先 'origin/dev' 共 1 个提交。
(使用 "git push" 来发布您的本地提交)
无文件要提交,干净的工作区
然后直接把整个分支推送到远程分支中去
chen@czc:~/AV_Development/Git_test/Git_test$ git push origin feature/dev
枚举对象中: 5, 完成.
对象计数中: 100% (5/5), 完成.
使用 8 个线程进行压缩
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 319 字节 | 319.00 KiB/s, 完成.
总共 3(差异 0),复用 0(差异 0),包复用 0
remote:
remote: Create a pull request for 'feature/dev' on GitHub by visiting:
remote: https://github.com/halfrmon/Git_test/pull/new/feature/dev
remote:
To github.com:halfrmon/Git_test.git
* [new branch] feature/dev -> feature/dev
这个时候远程仓库中就多了一个分支,如下图
4.git迭代开发请求MR/CR
然后点击这个compare&* pull request,就到了这个页面,然后对比你在哪个基础上改的代码,最下面的就是你这个代码相对于基础分支的改动
填写更改描述,直接Create pull request,提交MR
然后项目负责人就会收到merge的请求,没问题直接合并,有问题就重新写,然后再走一边这个流程,同时右上角的reviewers可以用来添加CR的人选。然后点进请求合并的那个分支,会发现自己的代码已经被合并上了!!!!!!
总结
Git系列完结,撒花!!!!!
Git简单的企业工作流就差不多这些了,还有很多其他的操作可以自己慢慢去学,这些够应付日常的开发工作了。今天事情很多,但是还是抽出时间优先把这个写完,写这个也是给自己记笔记,总结一下,当然,能帮助到你们更好,后续我可能会更新一些C++相关的东西,还请多多支持
标签:origin,git,dev,Git,使用,test,实际,分支 From: https://blog.csdn.net/czc20010825/article/details/142178631