实际工作中使用Git

在实际的工作开发中,面向的是团队协作的开发环境,跟自己独立开发还是有很大的不同的,接下来主要介绍在实际的工作中怎么使用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++相关的东西,还请多多支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值