常用git操作总结

文章目录

  • 一、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.hqwc.cn/news/299.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PWM详解(嵌入式学习)

这里写目录标题 前言定义参数工作原理应用练习 前言 在STM32微控制器中&#xff0c;PWM代表脉冲宽度调制&#xff08;Pulse Width Modulation&#xff09;。PWM是一种用于控制电子设备的技术&#xff0c;通过调整信号的脉冲宽度和周期&#xff0c;可以模拟出不同的电压或功率级…

STM32开发——非标协议(DH11+LCD1602)

1.STM32分文件实现代码 编译的总文件夹dh11andlcd&#xff0c;C文件不能跨文件夹查找&#xff0c;新增的分文件&#xff0c;需要都放调用的文件夹下 C文件和H文件理解&#xff1a;H文件是门脸&#xff0c;放在前面给别人的&#xff0c;别人一看就知道有什么东西。C是给内部人用…

电商项目10:商品管理、仓库管理

电商项目10&#xff1a;商品管理、仓库管理 1、商品管理1.1、spu检索1.1.1、后端1.1.2、前端 1.2、sku检索1.2.1、后端 2、库存管理2.1、启动ware后端微服务2.2、仓库维护查询2.3、查询商品库存2.4、查询采购需求 1、商品管理 1.1、spu检索 1.1.1、后端 spu检索接口文档 S…

UDP和TCP网络编程

UDP和TCP网络编程 UDP网络编程UDP通信流程&#xff08;回显服务&#xff09;测试扩展《UDP字典查找单词》 TCP网络编程TCP互相通信测试 缓存区和缓存 UDP网络编程 特点&#xff1a; 无连接&#xff1a;发送数据前不需要建立连接。不可靠&#xff1a;没有重发机制&#xff0c;无…

面对Android开发高薪诱惑,如何拿到大厂offer?

前言 出来打工最看重的就是薪资&#xff0c;作为一名5年开发经验的Android人员。在如今的大环境中薪资一降再降&#xff0c;还没人要。技术还还算可以但是面试一直被刷下来&#xff1f;这是为什么&#xff0c;本篇我们来聊聊Android开发面试中的关键。 面试过程 通常面试过程…

VRRP协议是什么?详解它的工作原理

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 前言 本文将讲解VRRP是什么&#xff0c;以及它的工作原理&#xff0c;优点以及基本概念。 目录 一、VRRP协议是什么&#xff1f; 二、VRR…

【FPGA】Verilog:时序电路设计 | 自循环移位寄存器 | 环形计数 | 扭环计数 | 约翰逊计数器

前言&#xff1a;本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例&#xff1a;计数器 ​​ 功能特性&#xff1a; 采用 Xilinx Artix-7 XC7A35T芯片 配置方式&#xff1a;USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度 存储器&#xff1a;2Mb…

将当前conda环境导出为yaml文件

conda环境的转移和复制 conda导出已有环境&#xff0c;环境会被保存在environment.yaml文件中。 conda env export > environment.yaml 当我们想再次创建该环境&#xff0c;或根据别人提供的.yaml文件复现环境时&#xff0c;就可以通过下面的命令来复现安装环境了。 conda …

【Docker】子系统与其相关名词的界定、Control Groups等详细讲解

前言 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 &#x1f4d5;作者简介&#xff1a;热…

tcp、udp调试工具

NetAssist(网络调试助手) 下载地址&#xff1a;http://www.cmsoft.cn/resource/102.html tcp-server代码 # codingutf-8 # 多线程TCP服务器import socket import threadingbind_ip "192.168.137.1" # 监听的IP 地址 bind_port 5100 # 监听的端口# 建立一个socke…

用OpenCV进行OCR字符分割

1. 引言 本文重点介绍如何利用传统的图像处理的方法来进行OCR字符切分&#xff0c;进而可以用分割后的单个字符做相应的后续任务&#xff0c;虽然现在计算机视觉依然是卷积神经网络的天下&#xff0c;但是对于一些相对简单的落地场景传统方案还是很有效的。 闲话少说&#xff…

c#学习笔记

目录 1.语句块2.Write和WriteLine的区别&#xff1a;3.params4.托管代码和非托管代码5.DllImport的使用&#xff1a;6.WriteLine、ReadLine和ReadKey&#xff1a;7.C#中访问修饰符8.类型的实例化9.成员可以分为两种&#xff1a;数据成员和函数成员10.枚举enum和结构struct的区别…