首页 > 其他分享 >实际工作中使用Git

实际工作中使用Git

时间:2024-09-12 19:52:40浏览次数:3  
标签:origin git dev Git 使用 test 实际 分支

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

相关文章

  • Git开发工作流
    1.git基础首先在当前目录下使用gitinit初始化当前仓库gitclone目标git仓库的ssh地址将远程仓库所有文件克隆到本地gitlog/*commit21e227b2a8e7049322c72030e1da307cea542c7e(HEAD->main,origin/main,origin/HEAD)Author:halfmelon<113506319+halfrmon@use......
  • [基于 Vue CLI 5 + Vue 3 + Ant Design Vue 4 搭建项目] 03 使用 npm 安装依赖出现 ce
    文章目录问题描述解决问题1.修改镜像源2.清理缓存3.临时禁用SSL证书验证4.再次安装依赖问题描述在使用npminstall进行按安装依赖的时候出现了下面错误npmerrorcodeCERT_HAS_EXPIREDnpmerrorerrnoCERT_HAS_EXPIREDnpmerrorrequesttohttps://registr......
  • BitComet比特彗星解决端口阻塞问题/黄灯问题,如何使用IPv6实现公网访问
    分析根据其本身的描述,就可以知道,黄灯的本质是端口对外网不公开。因此我们需要做以下工作:拥有一个外网IP/公网IP一般都是不给分配IPv4的,所以我们可以使用IPv6,这个默认都是开的。一般光猫默认的设置就是ipv4/ipv6,两种都开放使用。开放对应端口的防火墙说起来简单,实际上......
  • spoon、mysql数据导入hive,分别使用hdfs导入,或者修改配置
    一、mysql通过hdfs导入到hive—spoon    首先要在要在主对象树里边ADD一个hadoop然后在文件安装位置找到这个next后会出现这个,然后就可以把这页面关闭然后新建项目选择这两个,如果没有选择选项,重启软件就会有了然后选择这几个文件从服务器hadoopetc的配置文......
  • uniapp vue3使用crypto-js加密解密
    开启crypto-js加密解密的研究历程如何查看crypto-js的版本号?检查crypto-js是否正常我是这样认为的Nativecryptomodulecouldnotbeusedtogetsecurerandomnumber.本机加密模块无法用于获取安全随机数。PC端调试好好的,然后在微信小程序,安卓模拟器,真机调试就......
  • minio的下载和springboot整合minio使用
    下载minio基于docker拉取minio镜像dockerpullminio/minio 创建minio容器先创建/root/minio/data和/root/minio/confdockerrun-d-p9000:9000-p9001:9001--nameminio\-e"MINIO_ROOT_USER=htsdg"\-e"MINIO_ROOT_PASSWORD=12345678"\-v/root/......
  • 使用Arduino Uno作为烧录器为Atmega328PB芯片直接烧录程序
    目录摘要烧录方式操作过程准备工作将Arduinouno设置为烧录器烧录器和目标板电路连接添加第三方库设置参数程序烧写使用ArduinoIDE进行烧写使用Ardudess进行烧写成果展示摘要通过将一块ArduinoUno设置成ISP模式作为烧录器,从而实现为ArduinoProMini空白的ATMega328PB芯片直接......
  • 使用Code-Like Prompt重构ReAct
    ReAct的主要就是备用来调用函数,现在给出一个使用Code-Like的Prompt,同样支持外部函数调用稍微修改一下choose_action,应该就可以实现一次性调用多个外部工具.支持Json返回,而且返回很稳定.ReActinCode-Like#youareaprocess,followthecode.importjsonfromty......
  • RustPython简单使用
    RustPython介绍同CPython,Jpython,PyPy一样,RustPython,是使用Rust语言实现的Python解释器,支持Python3语法。项目地址:https://github.com/RustPython/RustPythonRustPython真正方便的是可以编译成Wasm文件,可以直接在浏览器中使用,示例网站:https://rustpython.github.io/demo/RustP......
  • 使用信号量实现限流器:Python 实践指南
    使用信号量实现限流器:Python实践指南在现代应用程序中,限流器(RateLimiter)是一个非常重要的组件。它可以帮助我们控制对资源的访问频率,防止系统过载,确保服务的稳定性。本文将详细介绍如何使用Python中的信号量(Semaphore)来实现一个高效的限流器。什么是限流器?限流器是一......