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集成开发环境运行你的“源码”的时候(…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

ui框架-文件列表展示
ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

Mac flutter环境搭建
一、下载flutter sdk 制作 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 1、查看mac电脑处理器选择sdk 2、解压 unzip ~/Downloads/flutter_macos_arm64_3.32.2-stable.zip \ -d ~/development/ 3、添加环境变量 命令行打开配置环境变量文件 ope…...
起重机起升机构的安全装置有哪些?
起重机起升机构的安全装置是保障吊装作业安全的关键部件,主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理: 一、超载保护装置(核心安全装置) 1. 起重量限制器 功能:实时监测起升载荷&a…...