git使用(由浅到深)
- 目录流程图

1. 分布式版本控制与集中式版本控制
1.1 集中式版本控制
- 集中式版本控制系统有:CVS和SVN
- 它们的主要特点是单一的集中管理的服务器,保存所有文件的修订版本;
- 协同开发人员通过客户端连接到这台服务器,取出最新的文件或者提交更新

- 优缺点
- 相较于老式的本地管理来说,每个人都可以在一定程度上看到项目中的其他人正在做些什么。
- 但是集中式版本控制也有一个核心的问题:中央服务器不能出现故障:
- 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据;
1.2 分布式版本控制
- 分布式版本控制系统有:Git

- 优缺点:
- 客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录;
- 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复;
- 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份;
2. 安装与配置
安装与配置参考
- 用户名与邮箱配置
$ git config --global user.name "username"
$ git config --global user.email "email@example.com"
3. git 命令行操作
基本指令前提
1. 克隆项目 `git clone 项目地址`
2. 初始化仓库` git init`
3. 添加暂存区 `git add .`
4. 提交本地仓库 `git commit -m 项目初始化`
5. master分支创建release分支` git branch release`
6. 基于master分支创建develop分支 `git branch develop`
# 推送master分支
git push -u origin master
# 推送release分支
git push origin release
# 推送develop分支
git push origin develop
# 在任意目录操作 (仓库地址仅供参考)
git clone https://gitee.com/zd1231230/doctor-demo.git
# 拉取其他分支
git fetch 项目地址 分支名称:别名
git fetch https://gitee.com/zd1231230/doctor-demo.git drugPayment:drugPayment
3.1 A D M U标识
M modified你已经在github中添加过该文件,然后你对这个文件进行了修改,就会文件后标记M
U untracked你在本地新建了这个文件,还未提交到github上,就会标记UD delete你删除了这个文件,vscode - git会记录下这个状态A在暂存区 还没有提交
3.2 项目初始化与提交基本命令
- 创建一个空目录 (最好不要包含中文)
$ mkdir gitMaster
$ cd gitMaster
$ pwd
/Users/git/gitMaster
- 初始化仓库
git init
$ git init
Initialized empty Git repository in /Users/hxk/mymenu/.git/
- 添加文件到仓库
$ git add test.txt
- 提交文件到仓库
- m后面是提交说明- 提交的备注写错 ,可以使用
git commit --amend修改
$ git commit -m "a new file"
- 查看提交的 历史记录
git log
- 查看状态
$ git status
3.3 文件状态跟踪与操作流程
-
文件在提交时可以分为
跟踪和未跟踪状态未跟踪:默认情况下,Git仓库下的文件也没有添加到Git仓库管理中,我们需要通过add命令来操作;已跟踪:添加到Git仓库管理的文件处于已跟踪状态,Git可以对其进行各种跟踪管理;
-
检测文件的状态
git status –s
git status --short
- 已跟踪的文件又可以进行细分状态划分
staged:暂缓区中的文件状态;Unmodified:commit命令,可以将staged中文件提交到Git仓库Modified:修改了某个文件后,会处于Modified状态;

- 命令跟踪文件
git add .并添加到暂存区

- 文件更新提交 –
git commit - m提交说明

3.4 提交历史记录与版本回退
git log // 提交的日志 (里面包含提交的id) q 退出
git log --pretty=oneline --graph //简短的提交历史日志 (可以看到分支的提交结构)
git log --pretty=oneline

- 如果想要进行版本回退,需要知道目前处于哪一个版本 Git通过HEAD指针记录当前版本

git reset--hard HEAD ^^ 上一个版本git reset--hard HEAD~1000~数字 上几个版本git reset--hard 595674bdc04935452e583b360e714238b1295bf7指定版本
3.5 git 忽略文件
.gitignore的文件,列出要忽略的文件的模
式;
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*node_modules
.DS_Store
dist
dist-ssr
coverage
*.local/cypress/videos/
/cypress/screenshots/# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
src/views/User/components/ConsultItem.vue
3.6 远程服务器
- 查看远程仓库
git remote
git remote –v
-v是—verbose的缩写(冗长的)

- 添加远程地址:让本地的仓库和远程服务器仓库建立连接
git remote add <shortname> <url>
git remote add origin http://152.136.185.210:7888/gitremotedemo.git
重命名远程地址: git remote rename master newMaster
移除远程地址: git remote remove gitlab
- 具体步骤
// 重要 添加远程地址(让本地的仓库和远程服务器仓库建立连接):
// git remote add < shortname > <url>0. git init // 初始化1. git remote add origin https://gitee.com/zd1231230/in.git // 关联远程仓库2.0 git push --set-upstream origin newFetch 提交到远程仓库2.1 git pull https://gitee.com/zd1231230/in.git master 拉取仓库到主分支3. 新建仓库 newFetch4. git commit -a -m "初始化"5. push

注意点关联远程仓库后 拉取分支并合并git pull
git pull 等于 git fetch + git merge(rebase)
3.7 分支创建切换与合并
- 分支创建
git branch 分支名
- 创建分支并合并
git checkout -b <newbranchname>
- 分支合并
git merge <name>
- 查看和删除分支
git branch# 查看当前所有的分支git branch –v# 同时查看最后一次提交git branch --merged# 查看所有合并到当前分支的分支git branch --no-merged# 查看所有没有合并到当前分支的分支git branch –d hotfix# 删除当前分支git branch –D hotfix# 强制删除某一个分支
3.8 跟踪分支
- 问题一:当前分支没有track的分支

- 原因:当前分支没有和远程的origin/master分支进行跟踪
- 在没有跟踪的情况下,我们直接执行
pull操作的时候必须指定从哪一个远程仓库中的哪一个分支中获取内容;
- 在没有跟踪的情况下,我们直接执行
- 直接执行
git push origin master
- 如果我们想要直接执行git fetch是有一个前提的:必须给当前分支设置一个跟踪分支

4. Git的工作流(git flow)
- 由于Git上分支的使用的便捷性,产生了很多Git的工作流:
- 也就是说,在整个项目开发周期的不同阶段,你可以同时拥有多个开放的分支;
- 你可以定期地把某些主题分支合并入其他分支中;
- 比如以下的工作流:
master作为主分支;develop作为开发分支,并且有稳定版本时,合并到master分支中;topic作为某一个主题或者功能或者特性的分支进行开发,开发完成后合并到develop分支中;
git fetch 项目地址 分支名称:别名
git fetch https://gitee.com/zd1231230/doctor-demo.git dev:dev

git flow 工作流图

文章参考:rebase与tag标签
相关文章:
git使用(由浅到深)
目录流程图 1. 分布式版本控制与集中式版本控制 1.1 集中式版本控制 集中式版本控制系统有:CVS和SVN它们的主要特点是单一的集中管理的服务器,保存所有文件的修订版本;协同开发人员通过客户端连接到这台服务器,取出最新的文件或者提交更新…...
NAT协议(网络地址转换协议)详解
NAT协议(网络地址转换协议)详解 为什么需要NATNAT的实现方式静态NAT动态NATNAPT NAT技术的优缺点优点缺点 NAT协议是将IP数据报头中的IP地址转换为另外一个IP地址的过程,主要用于实现私有网络访问公有网络的功能。这种通过使用少量的IP地址代…...
pytorch(续周报(1))
文章目录 2.1 张量2.1.1 简介2.1.2 创建tensor2.1.3 张量的操作2.1.4 广播机制 2.2 自动求导Autograd简介2.2.1 梯度 2.3 并行计算简介2.3.1 为什么要做并行计算2.3.2 为什么需要CUDA2.3.3 常见的并行的方法:网络结构分布到不同的设备中(Network partitioning)同一层…...
el-table 树形结构数据 设置某一层,新增按钮不展示
<template><div><el-table:data"tableData":row-class-name"rowClassName":tree-props"{ children: children, hasChildren: hasChildren }"><!-- 表格列定义 --><!-- ... --><el-table-column label"操作…...
【Unity2D】粒子特效
为什么要使用粒子特效 Unity 的粒子系统是一种非常强大的工具,可以用来创建各种各样的游戏特效,如火焰、烟雾、水流、爆炸等等。使用粒子特效可以使一些游戏动画更加真实或者使游戏效果更加丰富。 粒子特效的使用 在Hierarchy界面右键添加Effects->…...
第九十六回 网络综合示例:获取天气信息
文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了dio库中转换器相关的内容,本章回中将介绍网络综合示例:获取天气信息.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在前面章回中介绍了网络操作相关的内容,本章…...
Shell中获取昨天和多天前日期
1、获取今天日期 $ date -d now %Y-%m-%d 或者 $ date %F2、获取明天日期 $ date -d next-day %Y-%m-%d $ date -d tomorrow %Y-%m-%d3、获取昨天日期 $ date -d yesterday %Y-%m-%d 或者 $ date -d last-day %Y-%m-%d 或者 $ date -d "1 days ago" %Y-%m-%d …...
golang静态编译及编译失败排查步骤
文章目录 一、背景前提 二、静态编译概述1、执行静态编译设置CGO_ENABLED方式指定link方式 2、编译报错分析(1)确认系统上有没有安装libopus(2)设置LD_LIBRARY_PATH 三、详细排查过程1、下载bpf排查工具bcc, bcc-tools,python-bcc…...
2023年7月第4周大模型荟萃
2023年7月第4周大模型荟萃 2023.7.31版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 1、Cerebras推出全球最强AI超算 AI芯片初创公司Cerebras Systems和总部位于阿联酋的技术控股集团G42于7月20日宣布,携手打造一个由互联的超…...
Meta分析的选题与文献计量分析CiteSpace应用丨R语言Meta分析【数据清洗、精美作图、回归分析、诊断分析、不确定性及贝叶斯应用】
目录 专题一、Meta分析的选题与文献计量分析CiteSpace应用 专题二、Meta分析与R语言数据清洗及相关应用 专题三、R语言Meta分析与精美作图 专题四、R语言Meta回归分析 专题五、R语言Meta诊断分析与进阶 专题六、R语言Meta分析的不确定性及贝叶斯应用 专题七、深度拓展…...
vscode eslint配置
1. 全局安装 eslint npm install -g eslint 2. control shift p 输入 settings 打开设置进行配置 3. 添加配置 {"workbench.colorTheme": "One Dark Pro","eslint.debug": true,"eslint.execArgv": null,"eslint.alwaysShow…...
C++ 对象模型 C++ Object Model
C 对象模型 C Object Model 文章目录 C 对象模型 C Object ModelC语言的数据及函数C的类C对象模型 C语言的数据及函数 C语言中,数据和函数是分开声明的。 数据 typedef struct point2d {float x;float y; } Point2d;函数 打印Point2d的数值 void Point2d_print…...
leetcode做题笔记47
给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 思路一:回溯 int* Source NULL; int Source_Size 0;int** Result NULL; int* Retcolsizes NULL; int Result_Index 0;int* Path NULL; int Path_Index 0;bool* Used …...
Linux Day04
目录 一、文件压缩与解压命令 1.1 tar cvf 文件名 ---打包命令生成.tar 1.2 tar xvf 文件名 ----解开包 生成文件 1.3 gzip .tar 压缩 生成.tar.gz压缩包 1.4 gzip -d .tar.gz 解压成包 1.5 直接把压缩包解压成文件 tar zxf .tar.gz 二、Linux 系统上 C 程序的…...
上海亚商投顾:沪指冲高回落 两市成交重回万亿
上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数今日冲高回落,盘初一度集体涨超1%,随后涨幅明显回落,上证50午后一度翻…...
2023最新版本~十分钟零基础搭建EMQX服务器
购买服务器 已知服务器大厂商 1 阿里云 点击直接访问 2 华为云点击直接访问 3 腾讯云 点击直接访问 还是比较推荐大公司 不会跑路 这里我购买的是一年的华为云服务器(新用户 64一年) 镜像推荐乌班图18 登陆服务器(需要重置密码!!&…...
SpringBoot2.5.6整合Elasticsearch7.12.1
SpringBoot2.5.6整合Elasticsearch7.12.1 下面将通过SpringBoot整合Elasticseach,SpringBoot的版本是2.5.6,Elasticsearch的版本是7.12.1。 SpringBoot整合Elasticsearch主要有三种方式,一种是通过elasticsearch-rest-high-level-client&am…...
准大一信息安全/网络空间安全专业学习规划
如何规划? 学习需要一个良好的学习习惯,建议刚开始一定要精通一项程序语言,学习其他的就会一通百通。过程中是按步骤学习,绝不半途看见苹果丢了梨,一定要强迫自己抵制新鲜技术的诱惑。 网络安全其实是个广而深的领域…...
WEB:php_rce
背景知识 Linux命令 thinkPHPv5漏洞 题目 打开页面,页面显示为thinkphp v5的界面,可以判断框架为thinkPHP,可以去网上查找相关的漏洞 由题目可知,php rec是一个通过远程代码执行漏洞来攻击php程序的一种方式 因为不知道是php版…...
问题:idea启动项目错误提示【command line is too long. shorten command line】
问题:idea启动项目错误提示【command line is too long. shorten command line】 参考博客 问题描述 启动参数过长,启动项目,错误提示 原因分析 出现此问题的直接原因是:IDEA集成开发环境运行你的“源码”的时候(…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...
路由基础-路由表
本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中,往往存在多个不同的IP网段,数据在不同的IP网段之间交互是需要借助三层设备的,这些设备具备路由能力,能够实现数据的跨网段转发。 路由是数据通信网络中最基…...
验证redis数据结构
一、功能验证 1.验证redis的数据结构(如字符串、列表、哈希、集合、有序集合等)是否按照预期工作。 2、常见的数据结构验证方法: ①字符串(string) 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...
第2课 SiC MOSFET与 Si IGBT 静态特性对比
2.1 输出特性对比 2.2 转移特性对比 2.1 输出特性对比 器件的输出特性描述了当温度和栅源电压(栅射电压)为某一具体数值时,漏极电流(集电极电流...
