首页 > 其他分享 >git分布式版本控制系统(六)

git分布式版本控制系统(六)

时间:2024-06-02 09:31:32浏览次数:12  
标签:上线 代码 控制系统 修改 git commit 分布式 分支

目前世界上最先进的分布式版本控制系统

官方网址:https://git-scm.com

学习目标:

1 了解 git 前世今生
2 掌握 git 基础概念、基础操作
3 各种 git 问题处理
4 互联网常用 gitflow(工作流程规范)
5 git 代码提交规范
6 git 分支管理及命名规范

代码提交规范

Commit message

我们每一次提交必定是有特殊的行为,或是开发新功能、或是修复bug等等。我们针对不同的操作有如下的分类:
type 必填,commit 的类型
•feat: 开发新的功能
•fix: 修复bug
•refactor: 代码重构
•docs: 文档修改
•style: 代码格式修改, 注意不是 css 修改
•test: 测试用例修改
•perf: 改善性能
•build: 变更项目构建或外部依赖(例如scopes: webpack、gulp、npm等)
•chore: 其他修改, 比如构建流程, 依赖管理.
•revert: 代码回退
•而commit的格式也有标准格式:
•scope: commit 影响的范围, 比如: route, component, utils, build…
•subject: commit 的概述
•body: commit 具体修改内容
•footer: 一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接
scope 可选,表示影响的范围、功能、模块
subject 必填,简单说明,不超过 50个字
body 选填,用于填写更详细的描述
footer 选填,用于填关联issus,或BREAK CHANGE
要注意的几点:
1.每一次commit的message需要明确对应代码的功能,无效信息不会通过,如“添加适配文件”、“First commit”等
2.对于多余无效的commits需要压缩,如连续的相同commit messages的commits、连续的codecheck修改等
示例一:需要压缩成一条

正确示范

在这里插入图片描述

错误示范

在这里插入图片描述

分支管理及命名规范

项目分支

一般来说,互联网项目有上线分支,预上线分支,测试分支,开发分支等.
保证不同的分支做不同的事情,防止分支污染。

  1. 上线分支(RELEASE/master),是发布到线上的分支,以这个分支为准,其他分支都是以这个分支为基础拉取。
  2. 预上线分支(preonline),在预上线环境当中,防止出错的最后一道保证。
  3. 测试分支(testing),可能测试环境大家共用一套,所以把代码都merge到这里,然后发布。这样大家各自测试自己的,互不打扰。如果有多个测试 环境的话,直接使用开发分支测试也是可以的。
  4. 开发分支(feature/{功能名称(下划线命名)}_ {用户名(全拼)}),从上线分支(RELEASE)拉取,根据需求修改的新分支。
分支规范
  1. 测试分支以及预上线分支要定时清理,和上线分支同步。
  2. 上线分支以及预上线分支,merge权限保证在少数人手里。merge的时候,需要检查提交以及对线上的影响。
  3. 只能在开发分支修改代码,其他分支都是等着被merge.
  4. 提交之前,需要保证和上线分支没有冲突。
  5. 防止分支被污染,特别是受到测试分支污染。
流程规范之外

人是最难管理的,以及人是懒惰的。这些话是非常准确的,所以会遇到以下问题,还得需要解决。

  1. 需求改动非常小,是不是还得走整体流程。
  2. 紧急修复问题,是不是还得走整体流程。
    具体怎么做,每一个公司和组都有自己的做法,是不是都必须都得走一遍流程。但是,分支规范是必须的,不能随意修改。直接在上线分支修改,坚决说NO!

标签:上线,代码,控制系统,修改,git,commit,分布式,分支
From: https://blog.csdn.net/qq_37474090/article/details/139283403

相关文章

  • 使用 Sleuth 和 Zipkin 实现分布式链路追踪
    SpringCloud微服务之间的调用关系,通常随着业务的不断扩张而变得越来越复杂。如果调用链路上任何一个服务出现问题或者网络超时,导致通过日志快速排查和定位问题非常困难。分布式链路追踪就可以轻松解决该场景所面临的问题,其中一种比较简单的方案是采用SpringCloudSleuthSprin......
  • (7-4-03)反馈控制与系统稳定性:四轴飞行器仿真与控制系统(2)四轴飞行器的环境模拟(3)
    (9)reset(self,det_state=None):用于初始化环境的状态,可以选择指定明确的初始状态(det_state),否则将生成一个随机状态。返回初始状态和对应的零控制动作。defreset(self,det_state=None):state=[]action=[]self.action_hist=[]......
  • hbuilderx集成集中式版本控制系统SVN
    前提条件:1.下载最新的hbuilderxhttps://www.dcloud.io/hbuilderx.html2.安装Tortorisesvn客户端,特别注意安装时一定要安装commandlineclenttools3.解压hbuilderx并启动工具-----插件安装4.导入svn项目5.输入svn源代码仓库地址:例如svn://gitee.com/ossbar/study-mongo......
  • Java中的网络编程:构建稳健的分布式应用
            网络编程是Java开发中至关重要的一部分,特别是在构建分布式系统和网络应用程序时。Java提供了丰富的网络编程API和库,使开发者能够轻松创建各种网络应用。本文将介绍Java中的网络编程基础、常用的网络通信协议、以及如何利用Java构建稳健的分布式应用。####1.......
  • Git
    Git概述 Git代码托管服务 Git常用命令 在IDEA中使用Git 一、git版本2.20.164-bit Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git仓库来存储和管理这些文件,Git仓库分为两种:本地仓库:......
  • LAMP集群分布式实验报告
    前景:1.技术成熟度和稳定性:LAMP架构(Linux、Apache、MySQL、PHP)自1998年提出以来,经过长时间的发展和完善,已经成为非常成熟和稳定的Web开发平台。其中,Linux操作系统因其高度的灵活性和稳定性而广受欢迎;Apache服务器则以其高性能、稳定性和广泛的平台支持而著称;MySQL数据库以其易......
  • # Git命令
    目录提交修改并推送暂存分支操作参考文章:提交修改并推送保存修改到本地仓库并推送至服务器。查看文件状态gitstatusgitstatus-s添加提交文件需要先添加提交文件(建立并提交索引)才能进行提交操作。gitaddgitadd.撤销提交文件gitresetgitreset......
  • python pip install git+ssh
    网上比较容易找到的是pipinstallgit+https://github.com/waketzheng/fastapi-cdn-host.git这种方式如果电脑未配置或没启用外网加速器,这种方式简直慢得像蜗牛,改用ssh则会块很多很多:一般情况pipinstallgit+ssh://[email protected]/waketzheng/fastapi-cdn-host.git即:只需把h......
  • 在 GitLab 中创建新分支时挂钩失败
    我们安装了一个自我管理的gitlab,其中有一个非常简单的git预接收钩子,用于检查提交消息格式:#!#!/bin/bashwhilereadoldrevnewrevrefname;doif["$oldrev"-eq0];then#gitrev-list$(gitfor-each-ref--format='%(refname)'refs/heads/*|sed's/......
  • 使用git报错:error: RPC failed; curl 18 transfer closed with outstanding read data
    今天在使用git下载项目时发生报错:error:RPCfailed;curl18transferclosedwithoutstandingreaddataremainingerror:4790bytesofbodyarestillexpectedfatal:earlyEOFfetch-pack:unexpecteddisconnectwhilereadingsidebandpacketfatal:fetch-pack:in......