常用git操作总结

news2025/1/11 14:55:12

文章目录

  • 一、git 分支命名规范
    • (1)master 主分支
    • (2)develop 开发分支
    • (3)feature 分支(一般简写为feat)
    • (4)hotfix 分支(一般简写为fix)
    • (5)release分支
  • 二、基本开发
  • 三、git commit详细说明
  • 四、.gitignore的配置规则(允许使用正则)
  • 五、git 删除分支和删除远程分支
  • 六、回退代码
    • 0:如何查看commit 节点id
      • 1:Git Bash Here 上查看
      • (2)github上查看
    • (1)语法
    • (2)语法参数hard分析
    • (3)使用
      • 3-1 回退到当前版本之前
      • 3-2 回退到当前版本之后,回退指定版本
  • 七、当前分支功能开发一半,需要终止修复线上Bug(git stash)
    • 1:存储当前分支下的所有改动
      • 1-1:第一次提交(这个警告无关紧要)
      • 1-2:第二次提交
    • 2:查看所有的存储列表
    • 3:释放保存的内容,并将次保存内容删除(git stash pop)
    • 4: git stash总结
  • 八:总结


一、git 分支命名规范

(1)master 主分支

用于部署生产环境的分支,一般由develop以及hotfix分支合并,多人开发不推荐你直接修改master分支。

(2)develop 开发分支

一般开发的新功能时,feature分支都是基于develop分支下创建的,需要始终保持最新完成以及bug修复后的代码。

(3)feature 分支(一般简写为feat)

开发新功能时,以develop为基础创建feature分支。
分支命名: feature/ 开头的为特性分支, 命名规则: feature/user_header、 feature/user_footer。
实际多人开发的时候,会使用feat/你的工作名称_模块_功能_时间,如feat_zhagnsan_shop_detail_0101(说明:张三在1月1日添加了商品详情的功能)

(4)hotfix 分支(一般简写为fix)

分支命名: hotfix/ 开头的为修复分支,命名规则与 feature 分支类似。
线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支,修复完成后,需要合并到master分支和develop分支。

(5)release分支

release 为预上线分支,发布提测阶段,会release分支代码为基准提测。

当然了,一般大型项目,你是没有直接合并到master的权限的。一个上线的项目在正规公司里,无论是添加功能还是修改bug,都会有请求合并的请求,然后需要你的上级review一下代码,确认无误后才会上线的。

二、基本开发

git add .  // 将开发的内容暂存
git commit -m 'feat: add shop detail' // 将暂存区内容添加到本地仓库中
git push origin 分支名 // 提交本地代码到指定分支
git pull origin 分支名 // 拉取指定分支代码到本地

三、git commit详细说明

语法:git commit -m ['Type: message']

Type的类别说明:
feat: 添加新特性
fix: 修复bug
docs: 仅仅修改了文档
style: 仅仅修改了空格、格式缩进、都好等等,不改变代码逻辑
refactor: 代码重构,没有加新功能或者修复bug
perf: 增加代码进行性能测试
test: 增加测试用例
chore: 改变构建流程、或者增加依赖库、工具等

四、.gitignore的配置规则(允许使用正则)

作用:.gitignore文件可以让git提交的时候,过滤一些不需要提交的文件或文件夹,比如打包的文件、依赖安装包、编辑器的配置等。

具体的过滤规则有:
/build/ 不提交整个文件夹
*.zip 过滤所有.zip文件
/docs/do.txt 过滤某个具体文件
!src/ 不过滤该文件夹

具体语法:
以斜杠/开头表示目录;
以星号*通配多个字符;
以问号?通配单个字符
以方括号[]包含单个字符的匹配列表;
以叹号!表示不忽略(跟踪)匹配到的文件或目录; 从上到下执行,下面的命令会覆盖前面的

五、git 删除分支和删除远程分支

分支名为test

git branch -D test // 删除本地分支,直接删除
git push origin -d test // 删除远程分支
git remote prune origin // 清理本地不存在的远程分支,如远程上没有test分支,但你本地有

六、回退代码

0:如何查看commit 节点id

1:Git Bash Here 上查看

使用 git log命令即可,下面红框就是commit节点id,按住下箭头可以看之前版本的提交记录,按q关闭。
在这里插入图片描述

(2)github上查看

找到你项目后,点击code下面的提交commits,点击你需要版本右边的复制即可获取对应版本的commit节点id。
在这里插入图片描述
在这里插入图片描述

(1)语法

git reset commit节点id
git reset --hard commit节点id

(2)语法参数hard分析

(1)加–hard时:将本地的HEAD指针指向了<commit节点id>的版本,并重置了暂存区的内容,而且还修改重置了本地工作区的内容。
(2)不加hard时:只执行git reset <commit节点id>,只是将git仓库中的节点进行了回退,将HEAD指向了<commit节点id>的版本,此时主要用于自己代码的增量提交等。

(3)使用

3-1 回退到当前版本之前

git reset --hard HEAD^

解释:HEAD^ 表示回退到上一个版本,HEAD^^表示回退到上上个版本,如果回退到100个 版本 ,我们直接简写为 git reset –-hard HEAD~100 。

3-2 回退到当前版本之后,回退指定版本

git reset --hard commit节点id

注意commit 节点id不错即可。

七、当前分支功能开发一半,需要终止修复线上Bug(git stash)

1:存储当前分支下的所有改动

git stash
git stash -m "存储的信息" // 最好加上这一步

1-1:第一次提交(这个警告无关紧要)

在这里插入图片描述
这的意思就是:警告:README.md中的LF将被CRLF取代。
该文件将在您的工作目录中有其原始的行尾已将工作目录和索引状态WIP保存在master上:617b816 feat:init(这时候我是在master分支上,最近一次提交的commit -m 是feat:init

1-2:第二次提交

在这里插入图片描述
Saved working directory and index state WIP on master: 617b816 feat: init
意思是:已将工作目录和索引状态WIP保存在master上:617b816 feat:init(这时候我是在master分支上,最近一次提交的commit -m 是feat:init

2:查看所有的存储列表

git stash list

git stash提交一次和提交两次查看存储列表,即stash@{0}是最新的一次提交。
在这里插入图片描述
在这里插入图片描述

你完成第一步的时就可以切换到其他分支解决问题了,但是可以使用第二步的语法看看和第一步缓存代码的提示是否相同就更稳健一点。

3:释放保存的内容,并将次保存内容删除(git stash pop)

git stash pop

在这里插入图片描述

如上图所示,会将最近一次存储释放。使用git stash list 查看存储列表,已经由原来的两条存储变成了一条。

4: git stash总结

通过git stash指令,保存临时修改的代码到本地,该操作将清空工作区,(可以使用git stash list 确定一下stash@{0}确认是否缓存成功)然后切换分支去处理bug,完成后切回原来的分支,通过git stash pop还原之前的修改。

八:总结

参考文章:git代码规范 https://juejin.cn/post/6844903635533594632

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/680099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何用canvas实现一个富文本编辑器

富文本编辑器相信大家都用过&#xff0c;相关的开源项目也很多&#xff0c;虽然具体的实现不一样&#xff0c;但是大部分都是使用DOM实现的&#xff0c;但其实还有一种实现方式&#xff0c;那就是使用HTML5的canvas&#xff0c;本文会带大家使用canvas简单实现一个类似Word的富…

分布式系统学习第四天 fastcgi学习

目录 1. Nginx作为web服务器处理请求 2. http协议复习 3. fastCGI 3.1 CGI 3.3 fastCGI和spawn-fcgi安装 3.4 nginx && fastcgi 3.5我的总结 其他知识点 1. Nginx作为web服务器处理请求 nginx不能处理动态请求 因此把请求发送给fastCGI对动态请求进行处理 静态…

区块链基础之密码学及安全技术

1.2 密码学及安全技术 1.2.1 密码学知识 1.2.1.1 Hash函数 Hash(哈希) 哈希函数是一类数学函数&#xff0c;可以在有限合理的时间内&#xff0c;将任意长度的消息压缩为 固定长度的输出值&#xff0c;并且是不可逆的。其输出值称为哈希值&#xff0c;也称为散列值。 哈希算法…

越权漏洞学习-做你做不了的事情

&#xff08;一&#xff09;、什么是越权漏洞 1、了解越权漏洞&#xff1a; 越权漏洞是指一个用户或者一个攻击者通过利用系统中某一漏洞&#xff0c;可以获得超过其正常权限的权限。也就是说&#xff0c;越权漏洞会使攻击者能够执行未经授权的操作或访问受保护的资源 简单来…

从开发人员的视角面对c盘容量紧缺的一些方案

前言 随着时代的发展&#xff0c;固态价格不断地下降&#xff0c;电脑硬盘容量水平线在不断地上升&#xff0c;近几年新出的主流笔记本自带固态容量也基本上在256G以上。所以通常不会有容量不够而带来的烦恼。个人用户往往是因为视频、游戏等文件占用了大量容量&#xff0c;针…

mmrotate调研

mmrotate调研 MMrotate是什么&#xff1f; ​ 在真实场景中&#xff0c;我们见到的图像不都是方方正正的&#xff0c;比如扫描的图书和遥感图像&#xff0c;需要检测的目标通常是有一定旋转角度的。这时候就需要用到旋转目标检测方法&#xff0c;对目标进行精确的定位&#x…

第三方库介绍——mosquitto

文章目录 概述程序&#xff08;指令&#xff09;说明安装服务端与客户端服务端指令配置配置文件&#xff1a;mosquitto.conf认证配置&#xff1a;pwfile权限配置&#xff1a;aclfile启动服务器&#xff0c;选择配置文件&#xff1a;mosquitto.conf 测试发布指令&#xff1a;订阅…

基于立创EDA的原理图设计进阶(实战开发一个小项目)

目录 学习目标 原理图设计进阶——空气质量检测仪 项目需求 1、功能性需求分析 2、非功能性需求 硬件框架图 元器件选型 MCU sensor LCD WIFI KEY PWOER 原理图设计 元件PCB封装设计-DIP&#xff0c;SOP 理论知识 直插式 贴片式 学习目标 1、熟悉电子产品设…

网络编程详细讲解

网络编程 网络通信 网络 ip 地址 1.概念&#xff1a;用于唯一标识网络中的每台计算机/主机 2.查看ip地址&#xff1a;ipconfig 3.ip地址的表示形式&#xff1a;点分十进制XX.XX.XX.XX 4.每一个十进制数的范围&#xff1a;0~255 5.ip地址的组成网络地址主机地址&#xff0…

团体程序设计天梯赛-练习集L2篇①

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的普通人。 &#x1f3c0;个人主页&#xff1a;陈童学哦CSDN &#x1f4a1;所属专栏&#xff1a;PTA &#x1f381;希望各…

Python3学习之列表

目录 1.访问列表中的值 2.更新列表 3.删除列表元素 4.Python列表脚本操作符 5.Python列表截取与拼接 6.嵌套列表 7.列表比较 8.Python列表函数&方法 序列是 Python 中最基本的数据结构。序列中的每个值都有对应的位置值&#xff0c;称之为索引&#xff0c;第一个索…

Go语言doc

1、Go语言doc go doc 命令可以打印附于 Go 语言程序实体上的文档&#xff0c;我们可以通过把程序实体的标识符作为该命令的参数来 达到查看其文档的目的。 所谓Go语言的程序实体&#xff0c;是指变量、常量、函数、结构体以及接口&#xff0c;而程序实体的标识符即是代表它们…

JDBC 和数据库连接

JDBC 和数据库连接 基本介绍 JDBC为访问不同的数据库提供了统一的接口&#xff0c;为使用者屏蔽了细节问题。Java程序员使用JDBC&#xff0c;可以连接任何提供了JDBC驱动程序的数据库系统&#xff0c;从而完成对数据库的各种操作。JDBC的基本原理图&#xff3b;重要&#xff…

CSDN 个性化推荐系统的设计和演进

个性化推荐项目 个性化推荐的设计和演进项目概览项目梳理依赖管理实现代码的重构和改进持续演化 个性化推荐的设计和演进 CSDN 的个性化推荐系统&#xff0c;是从既有的推荐项目中剥离出来的一个子项目&#xff0c;这个项目随后移交到了我们AI组。在近一年的时间内&#xff0c…

机器学习实战|第5周|第3章:无监督学习与数据预处理|3.3降维|16:00~17:55

目录 一、降维的动机 (1)数据压缩 (2)数据可视化 (3)降维的弊端 二、什么是维度的诅咒&#xff1f; 三、数据集被降维后能否逆转 四、降维的主要方法 (1)投影 (2)流形学习 五、PCA PCA可以用来给高度非线性数据集降维吗&#xff1f; 假设在一个1000维数据集上执行P…

最优化理论中的惩罚函数法:概念、推导和应用

目录 1. 引言 2. 惩罚函数法的概念 2.1 惩罚函数法的基本思想 2.2 惩罚函数的定义 2.2.1 符号性质 2.2.2 惩罚性质 2.2.3 连续性质 2.3 惩罚函数法的推导 2.4 惩罚函数法的特点 2.4.1 灵活性 2.4.2 通用性 2.4.3 近似解 2.4.4 收敛性 3. 推导过程 3.1 问题建模 …

Redis实战案例6-缓存穿透及其解决案例

1. 缓存穿透 缓存穿透是指在缓存中查找一个不存在的值&#xff0c;由于缓存一般不会存储这种无效的数据&#xff0c;所以每次查询都会落到数据库上&#xff0c;导致数据库压力增大&#xff0c;严重时可能会导致数据库宕机。 解决方案&#xff1a; 方法一&#xff1a;缓存空对象…

【Python】异常处理 ② ( 捕获所有类型的异常 | 默认捕获所有类型异常 | 捕获 Exception 异常 )

文章目录 一、Python 默认捕获所有类型异常1、默认捕获所有类型异常 - 无法获取异常类型2、代码实例 - 默认捕获所有类型异常 二、Python 捕获所有类型异常 - 捕获 Exception 异常1、捕获 Exception 类型异常 - 可获取异常类型2、代码实例 - 捕获 Exception 异常 一、Python 默…

猴子都能听懂的 从 0 到 1 设计一个网络

标题开玩笑了哈&#xff0c;大家不要介意&#xff0c;就是说本文真的超级大白话&#xff01; 话不多说&#xff0c;开始整活&#xff01; 你很爱玩电脑游戏&#xff0c;你买了一台电脑&#xff0c;就一个人自己玩&#xff0c;也不需要和谁沟通&#xff0c;不需要与别人联机&am…

数据库判断分解的无损连接性

例题 关系模式R&#xff08;ABCDE&#xff09;&#xff0c;F{A->C,C->D,B->C,DE->C,CE->A} 若分解成R1(AD)R2(AB)R3(BC)R4(CDE)R5(AE)判断是否具有无损连接性 画出如下表格如第一行&#xff1a;AD&#xff0c;那么在A&#xff0c;D的地方填入&#xff0c;i表…