Git实现代码及版本管理

项目发布前如何打tag标签及标签命名规范 阅读详情

Git分支介绍及命名规范

分支用途

  1. 开发多个项目任务:比如说我有两个任务都比较紧急,任务a需要三天完成,任务b需要两天完成,而任务a是之前就已经开始进行的,任务b是中间加的新任务,所以需要第二天就完成任务b.

  2. 线上开发环境规范,主干分支保证代码可发布状态:master分支始终要保证可发布的状态,用dev分支和bug分支进行开发和错误调试,这样能够保证主干代码的干净、可发布

  3. 自己开发测试或者修复BUG等等,可以避免代码的丢失

  4. 后期功能迭代可以并行

在这里插入图片描述

分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:
1.首先,pro分支(即master)应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

2.那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,
再把dev分支合并到master上,在master分支发布1.0版本

3.修复bug时,我们会通过创建新的bug分支(即test)进行修复,然后合并,最后删除;

4.当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场

标签

Tag格式: 主版本号.次版本号.修订号-类型标签,其中类型标签可为:alpha、beta、rc、r。
Tag示例:1.0.0-alpha、1.0.0-beta、1.0.0-rc、1.0.0-r

注1:有的公司在版本命名时,前面加v,“-”替换成“_”,更加详细一点还可以在修订号后面添加发布日期 v1.0.0.191220_alpha,这都是可以的

四个环境

分别是:dev、test、pre、pro(master),中文名字:开发环境、测试环境、灰度环境、生产环境

  1. dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。

  2. test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定

  3. pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。(少数公司使用)

  4. pro(master)环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境。

分支与标签的关系

 dev-->alpha
 test-->beta
 pre-->rc
 pro-->r

dev/test/pre/pro环境切换

分支相关命令

1.查看分支,此命令会列出所有分支,当前分支前面会标一个*号

 git branch           //查看本地分支
 git branch -a        //查看远程分支

2.创建分支

 git branch name      //仅仅保存本地,远程还需要push
 git push <远程仓库名> <远程分支名>

3.切换分支

 git checkout name

4.创建+切换分支

 git checkout -b name

5.合并某分支到当前分支

 git merge name

注意:当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
使用用git log --graph命令可以看到分支合并图。

6.删除分支(分本地和远程)

 git branch                      //查看本地分支
 git branch -d name              //删除本地分支
 git branch -a                  //查看远程分支
 git push origin --delete dev   //删除远程分支

7.重命名本地分支,并提交到远程

 1.重命名 
   git branch -m oldBranchName newBranchName
 2.删除远程分支
   git push origin :oldBranchName
 3.将重命名过的分支提交
   git push origin newBranchName

1.git branch -m 要改的本地分支名 修改后的分支名(修改本地分支)
2.git push origin :远程修改前的分支名(删除远程分支)
3.git push origin 修改后的分支名:修改后的分支名(push 到远程分支)
4.git branch --set-upstream 修改后的分支名 origin/修改后的分支名(绑定远程分支)

pull拉取远程指定分支

1.将远程指定分支 拉取到 本地指定分支上

   git pull <远程仓库名> <远程分支名>:<本地分支名>

2.将远程指定分支 拉取到 本地当前分支上:

   git pull <远程仓库名> <远程分支名>

3.将与本地当前分支同名的远程分支 拉取到 本地当前分支上

   git pull <远程仓库名>

在克隆远程项目的时候,本地分支会自动与远程分支建立追踪关系,可以使用默认的origin来替代远程仓库名,
所以,我常用的命令就是 git pull origin <远程仓库名>,操作简单,安全可控。

push推送到远程指定分支

1.将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反)

   git push <远程仓库名> <本地分支名>:<远程分支名>

2.将本地当前分支 推送到 远程指定分支上

   git push <远程仓库名> <远程分支名>

3.将本地当前分支 推送到 与本地当前分支同名的远程分支上

   git push <远程仓库名>

推荐使用第2种方式,git push origin <远程分支名>

分支打tag

Git如何给branch打tag?

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。
将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照

1.查看所有标签

 git tag
 注1:标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息

2.创建tag
1.首先,切换到需要打标签的分支上,例如:dev,再创建标签

       git branch
       git checkout dev
       git tag 1.0.0-alpha

2.推送标签到远程

   git push origin 1.0.0-alpha
   注1:因为创建的标签都只存储在本地,不会自动推送到远程,还需要手动推送

3.git标签分为两种类型:轻量标签和附注标签,区别:附注标签带注解

   git tag 1.0.0-alpha                         //创建轻量标签
   git tag -a 1.0.0-alpha -m "一期开发完成"    //创建附注标签
   一般推荐打带附注信息的标签,这样可以最大限度查看标签版本的修改情况

3.删除tag
1.删除本地tag
git tag -d 1.0.0-alpha

注1:因为创建的标签都只存储在本地,不会自动推送到远程。所以,标签可以在本地直接删除

2.删除远程tag
1.如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除
git tag -d 1.0.0-alpha
2.然后,再从远程删除。删除命令也是push,但是格式如下:
git push origin :refs/tags/1.0.0-alpha

在这里插入图片描述

安装Git,关联到Coding,实现代码版本管理 1.安装Git 下载地址:http://git-scm.com/download/ 默认路径直接安装,也可修改安装目录。 安装后,找到git-bash.exe,双击打开,出现如下图片,证明安装成功。 2.Android Studio中配置Git File -> Setting Version Control,选择Git安装目录中的git.exe文件,点击Test。出现如下图片,证明配置成功... 阅读详情

相关推荐

Git办公入门:零代码实现文件版本管理与时光回溯

Git 是一种分布式版本控制系统,其核心原理是记录文件变更(diff)而非复制全量副本,从而实现高效的空间利用、精准的历史追溯和确定性的状态恢复。作为现代数字办公的基础能力,它不依赖编程背景或服务器配置,单机即可运行,特别适合行政、财务、设计等非技术岗位用于管理文档、报表、课件等日常产出。通过 TortoiseGit 等图形化工具,用户可借助图标状态(如绿色对勾、红色叹号)直观感知文件版本状态,完成提交、分支、回退等操作。本文聚焦个人办公场景,详解如何用鼠标右键搭建工作仓库、隔离修改风险、找回误删内容,并自

diaoqi6581的博客 490

Alpha、Beta、RC、GA版本的区别

Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用。 Beta:也是测试版,这个阶段的版本会一直加入新的功能。在Alpha版之后推出。 RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台上就是发行候选版本。RC版不会再加入新的功能了,主要着重于除错。 GA:General Availability,正...

weixin_30375427的博客 1303

MindIE与vLLM-Ascend性能对决:Qwen3在昇腾910B上的推理效率实测

本文深度对比了昇腾910B平台上两大推理框架MindIE与vLLM-Ascend的性能表现。通过实测Qwen3系列模型,详细分析了二者在单卡、多卡场景下的推理效率、扩展性及生产环境适用性,为AI算力基础设施选型提供关键参考。

weixin_29214335的博客 1176

GIT版本号命名通用规则,开源项目版本号通用规则

当API的兼容性变化时,X必须递增,Y和Z同时设置为0;先行版本号(Pre-resease)意味着该版本不稳定,可能存在兼容性问题,其格式为:X.Y.Z.[a-c][正整数],如 1.0.0.a1 , 1.0.0.b99,1.0.0.c1000。为了方便理解,版本限定的语法简述为[范围描述],范围描述可选,必须配合版本描述确定范围,无法独立存在。X,Y,Z必须为非负整数,且不得包含前导零,必须按数值递增,如1.9.0 -> 1.10.0 -> 1.11.0。

秃了也弱了 3148

Nacos启动报错No DataSource set?5分钟搞定standalone模式配置

本文针对Nacos启动时常见的“No DataSource set”报错,深入解析了其根源在于默认集群模式与外部数据库依赖。提供了两种快速解决方案:通过命令行参数“-m standalone”启动,或直接修改启动脚本配置文件,从而在5分钟内以单机模式成功启动Nacos,无需配置MySQL数据库。

weixin_29234509的博客 464

别再死记硬背了!用Python可视化带你直观理解柯西收敛定理(附NumPy代码)

本文通过Python可视化技术,结合NumPy和Matplotlib,直观展示柯西收敛定理的动态过程。文章提供了完整的代码实现,帮助读者从抽象数学定义过渡到具象理解,特别适合数学学习者和Python开发者。通过热力图和交互式参数探索,读者可以清晰观察数列收敛特性,提升数学分析的学习效率。

weixin_28465009的博客 185

【Git】-- 版本说明

Alpha:是内部测试版,一般不向外部发布,会有很多 Bug .一般只有测试人员使用。 Beta:也是测试版,这个阶段的版本会一直加入新的功能。在 Alpha 版之后推出。 RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台上就是发行候选版本。RC版不会再加入新的功能了,主要着重于除错。 GA:General Availability,正式发布的版本,在国外都是用GA来说明release版本的。 RTM:(Release to Manufacture)是给

欢迎来到我的博客,一起探索代码里的世界! 780

从实验室到晶圆厂:一文看懂二维半导体(如MoS2)的CVD生长与晶体管制造挑战

本文深入探讨了二维半导体(如MoS2)从实验室研究到晶圆厂量产的CVD生长与晶体管制造关键技术挑战。重点分析了晶圆级二维半导体的CVD生长工艺优化、晶体管制造的四大界面工程难题,以及掺杂与集成的产业化解决方案,为二维半导体在集成电路领域的应用提供技术参考。

weixin_42651748的博客 471

软件版本RC,M,GA……

RC版本   RC:(Release Candidate)   Candidate是候选人的意思,用在软件上就是候选版本。Release是发行、发布的意思。Release.Candidate.就是发行候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错!   GA版本 在很多软件下载的时候,你会发觉标识为

无他, 但手熟尔 1万+

把数据库算力拉满的 ABAP CDS Table Function:从语法、权限到可运行样例的全景解析

文章摘要: 本文针对ABAP开发者探讨了CDS Table Function的应用场景与实现细节。当CDS View无法处理复杂计算(如窗口函数、递归等)时,可通过Table Function将逻辑下推到HANA数据库执行。关键点包括:1)CDS实体声明与AMDP实现的协作关系;2)多租户环境下的Client处理机制(@ClientHandling.type注解);3)激活与传输的阶段性特点可能导致的"暂不可用"问题;4)基于SFLIGHT的完整示例,展示如何定义Client依赖函数、实

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 299

ESP32-IDF开发之旅 网络篇⑩ Web配网

本文介绍了基于ESP32S3的Web配网实现方案。作者通过移植开源项目,在ESP32S3上实现了WiFi配置功能,包括AP模式创建、HTTP服务器搭建、NVS存储读写等核心功能。文章详细解析了代码结构,包含WiFi初始化、事件处理、NVS存储管理和HTML页面服务等关键模块。实现方案采用AP+STA双模式,支持通过网页扫描WiFi并保存配置信息,适用于物联网设备的网络配置场景。代码中使用了FreeRTOS任务、ESP-IDF事件组等技术,并提供了完整的错误处理和日志记录功能。

单片机菜鸟哥的博客 350

rt-thread studio 使用git工具在gitee上实现代码托管和版本管理

本文介绍了如何在RT-Thread Studio中使用Git工具实现代码托管和版本管理。主要内容包括:前期准备(RT-Thread Studio 2.2.9、测试工程、Gitee账号注册);Git使用目的说明(版本管理、团队协作);具体实现步骤:1)安装软件和创建Gitee仓库;2)配置本地Git仓库;3)项目提交与推送至Gitee;4)创建分支并提交;5)拉取项目操作。文章详细演示了从本地工程创建到远程仓库管理的完整流程,为开发者提供了清晰的Git版本控制实现方案。

rlyabc的博客 1627

【肝帝一周总结:全网最全最细】十万字python教程,学不会找我!教到你会为止!!内容超多,建议收藏慢慢看!

文章目录前言一定要看python入门python缩进Python注释Python 变量1. 定义理解2. 变量名命名3. 分配多个值4. 输出变量5. 全局变量 前言一定要看 python能干什么?有什么用?好处在哪?不要我讲了,这不是我在博客该讲的,言简意赅就是:通俗易懂,上手快,实用强。我会根据自己个人理解以及国外官网翻译为中文对大家进行讲解。完整源码我也会在最下面带上地址。内容过多,我不会全部演示,你完全可以复制粘贴到自己的pycharm上运行即可。 不管是国内的菜鸟教程还是我在这里的翻译,至少你跟

全栈川川 5万+

基于金山快盘的Git服务器、快盘+ Git GUI 实现代码版本管理

Git,这货堪称神器,用了它就再也不想用其他VCS了,就像上了高速就不想再走国道一样。 Git的强大之处在于,你可以在局域网内的任何一个共享路径下创建仓库,而不需要运行任何服务。所有的操作都是基于本地的。这也不难理解可以直接放在快盘里了。 一般的大些公司都有自已的版本管理服务器,远程时 登录VPN也可以实现操,但是几人的小团队就不太现实了,基本没有VPN,如果是几个异地朋友想...

weixin_30300225的博客 145

【音视频基础】一篇搞懂视频的各种封装格式

在现代多媒体处理中,视频封装格式扮演着至关重要的角色。不同的封装格式决定了视频文件的存储方式、兼容性以及功能特性。无论是观看高清视频、编辑电影剪辑,还是在互联网上流式传输内容,理解各种视频封装格式的基础知识都是必不可少的。在这篇文章中,我们将详细介绍常见的视频封装格式,探讨为什么需要这些格式,以及它们各自的功能和区别,帮助你在选择和使用视频格式时做出更明智的决定。WEBM理解各种视频封装格式的功能和区别对于选择合适的格式至关重要。

m0_62599305的博客 2476

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【知识学习】Git:如何利用Git实现Matlab代码版本管理

本文主要针对如何利用Git实现Matlab代码版本管理进行了梳理,具体内容可见文章~

快乐小狗的成长站~ 2713

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

使用Git-ftp实现网站代码发布的版本管理

如果你的网站源码在开发过程中,已经在使用 GIt 进行版本管理,同时你是采用 ftp 服务器来更新上传网站代码的话,Git-ftp 能够实现在上传代码时,只上传从上次上传后更新了的文件,从而帮您节约大量的时间和带宽,同时避免造成版本混乱,轻松实现网站代码版本的精准控制。您可以轻松发布另外的分支,或者回滚到想要使用的老版本。

weixin_42398461的博客 967

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

百度云网盘 360云盘 金山快盘 等 + Git GUI 实现代码版本管理-个人篇

网盘现在很流行,比较好且稳定性强的个人感觉有 百度云网盘、360云盘、金山快盘、腾讯微云,我个人常用的是 这四家的,大公司安全性好,稳定性强,速度快,其它就不多说了我这里用百度云网盘,并用VS2012新建项目进行演示昨天晚上刚在服务器上面安装了SVN,今天在网上就学到了可以通过网盘来实现版本管理,这样还好,不用再用自已 服务器上面的带宽了。下面介绍操作细节1、先下载Git GUI 下载地址:htt

Augusdi的专栏 2623

微信小程序中使用 Git 实现版本管理以及代码上传发布审核上线

关注小编微信公众号公众号【前端基础教程从0开始】回复“1”,拉你进程序员技术讨论群,群内有大神,可以免费提供问题解答。公众号回复“小程序”,领取300个优秀的小程序开源代码+一套入门教程。公众号回复“领取资源”,领取300G前端,Java,产品经理,微信小程序,Python等资源合集大放送,让我们一起学前端。 前言 在微信小程序开发的过程中,代码版本管理往往需要使用第三方工具进行管理。虽然微信We...

baidu_41601299的博客 8400

金山快盘 + Git GUI 实现代码版本管理-团队篇

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34381687的博客 130

如何使用python脚本下载git代码_Pycharm自带Git实现版本管理的方法步骤

之前一直使用本地的git客户端,通过命令来上传、下载代码到Gitlab;每次都需要启动git客户端,敲git命令来完成,不够灵活,因为强大的Pycharm就自带git功能,可以直接在Pycharm完成代码的改动和提交。一,关联git.exePycharm需要先关联git,才能使用git的功能,配置如下图:点击“Test”,出现git版本的提示,说明关联完成二,从Gitlab下载项目到本地1、点击V...

weixin_39989384的博客 738

Go+GoLand+Git实现代码版本管理(六)

如果是本地先安装了git,而且安装过程将git执行文件地址加入了系统环境变量%Path%中,后续GoLand安装之后会自动配置好【Path to Git executable】这个参数,笔者这里就是通过“Auto-deteched”自动发现填充的。由于本项目仅为练习项目,本次不演示如何将代码提交到远程仓库,如果读者感兴趣,可以自行查询git的使用文章,自学操作。

1352

在TFS中使用Git Tags(标签或标记),实现代码的版本管理

一、概述:与TFVC中标记(Label)一样,Git的标签(Tag)也是TFS系统的代码管理中非常重要的一个版本管理工具。使用标签,我们可以每个时间点的代码注上一个通俗、并且容易记忆的名称(例如标签的名称为V1.0,V2.0.0.0等),方便开发人员对代码库中的版本有一个直观的了解。我们可以依照标签,签出任一时间点的代码。下面我们结合TFS 2018和Visual Studio 2017来验证如...

Azure DevOps Server(原名TFS) 418

实习Day02 在AndroidStudio使用Git实现代码版本管理

1 目的: 熟悉git的基本操作,包括: 1)克隆一个项目到AndroidStudio 2) 创建一个远程仓库 3)将项目提交到远程仓库 4)对项目文件增删改查操作,并提交到远程仓库 5)分支 2 实现过程 2.0 配置AndroidStudio 1)file–setting–git 指定git.exe文件 2)file–setting–github 添加github账号 2.1.克隆一个项目到...

qq_40309483的博客 399

利用网盘 + Git GUI 实现代码版本管理-个人篇

网盘现在很流行,比较好且稳定性强的个人感觉有 百度云网盘、360云盘、金山快盘、腾讯微云,我个人常用的是  这四家的,大公司安全性好,稳定性强,速度快,其它就不多说了 我这里用百度云网盘,并用VS2012新建项目进行演示 昨天晚上刚在服务器上面安装了SVN,今天在网上就学到了可以通过网盘来实现版本管理,这样还好,不用再用自已  服务器上面的带宽了。 下面介绍操作细节 1

xuhui_7810的专栏 1024
上一篇: Mybatis下的九种设计模式
下一篇: java的常见数据结构
water_java
博客等级 码龄7年 9粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值