【瑞吉外卖】Git部分学习
Git简介
Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git仓库来存储和管理这些文件,Git仓库分为两种:
本地仓库:开发人员自己电脑上的Git仓库
远程仓库:远程服务器上的Git仓库
commit:提交,将本地文件和版本信息保存到本地仓库
push:推送,将本地仓库和版本信息上传到远程仓库
pull:拉取,将远程仓库文件和版本信息下载到本地仓库

Git代码托管服务
Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?
github(地址:https://github.com/),是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名gitHub
码云(地址:https://gitee.com/),是国内的一个代码托管平台,由于服务器在国内,所以相比GitHub,码云速度会更快
GitLab(地址:https://about.gitlab.com),是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务
BitBucket(地址:https://bitbucket.org/),是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户
Git常用命令
Git全局设置
当安装Git后首先要做的事情是设置用户名称和email地址,这是非常重要的,因为每次Git提交都会使用该用户信息。
在Git命令行中执行下面命令:
设置用户信息:
git config --global user.name "itcast"
git config --global user.email "hello@itcast.cn"
查看配置信息
git config --list
获取Git仓库
要使用Git对我们的代码进行版本控制,首先需要获得Git仓库
获取Git仓库通常有两种方式:
在本地初始化一个Git仓库(不常用)
从远程仓库克隆(常用)
在本地初始化Git仓库:
1.在任意目录下创建一个空目录(例如repo1)作为我们的本地Git仓库
2.进入这个目录中,点击右键打开Git bash窗口
3.执行命令git init
从远程仓库克隆:
注意:仓库不能嵌套,从远程仓库克隆不需要git init
git clone [远程Git仓库地址]
工作区、暂存区、版本库 概念
版本库: .git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

Git工作区中文件的状态
Git工作区中的文件存在两种状态:
untracked 未跟踪(未被纳入版本控制)
tracked 已跟踪(被纳入版本控制)
1)Unmodified 未修改状态
2)Modified 已修改状态
3)Staged 已暂存状态
注意:这些文件的状态会随着我们执行Git的命令发生变化
本地仓库命令
git status 查看文件状态
git add 将文件的修改加入暂存区
git reset 将暂存区的文件取消暂存或切换到指定版本
git commit 将暂存区的文件修改提交到版本库
git log 查看日志
以创建文件demo.txt为例:
①创建

②添加至暂存区

③查看文件状态

④取消demo.txt的暂存

⑤再次查看文件状态

⑥提交文件demo.txt
注意:必须要先将文件添加至暂存区才能提交
提交文件语法: git commit -m "描述" 文件名

⑦修改文件内容以后再次查看文件状态
注意:因为文件被修改而没有再次提交所以是红色modified

⑧ 再次提交文件
注意:再次将文件提交至暂存区,可以看见modified变为了绿色

⑨查看版本信息

⑩切换版本
语法:git reset --hard 版本号
注意:切换完版本可以观察文件内容是否对应改变

远程仓库操作
git remote 查看远程仓库
git remote add 添加远程仓库
git clone 从远程仓库克隆
git pull 从远程仓库拉取
git push 推送到远程仓库
①查看远程仓库
git remote
git remote -v 查看详细信息

②添加远程仓库
git remote add <shortname> <url>
添加远程仓库,运行 git remote add <shortname> <url>添加一个新的远程Git仓库,同时指定一个可以引用的简写

③克隆远程仓库到本地
Git克隆的时该Git仓库服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件
命令:git clone [url]

④推送至远程仓库
一定要先提交到本地仓库,才能推送到远程仓库
语法:git push [remote-name] [branch-name]

⑤从远程仓库拉取
命令:git pull [short-name] [branch-name]
git pull命令的作用是从远程仓库获取最新版本并合并到本地仓库

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories)
解决此问题可以在git pull命令后加入参数 --allow-unrelated-histories

分支操作
分支是Git使用过程中非常重要的概念,使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
同一个仓库可以有多个分支,各个分支相互独立,互不干扰。
通过git init命令创建本地仓库时默认会创建一个master分支。
git branch 查看分支
git branch [name] 创建分支
git checkout [name] 切换分支
git push [shorName] [name] 推送至远程仓库分支
git merge [name] 合并分支
①查看分支
git branch 列出所有本地分支
git branch -f 列出所有远程分支
git branch -a 列出所有本地分支和远程分支

②创建新的分支
git branch [name]

③切换分支

④推送至远程仓库
git push [shortName] [name]

⑤合并分支
git merge [name]

合并分支冲突
背景:在master分支上修改demo.txt文件,增添语句“在master下修改文件”
在fix分支上修改demo.txt文件,增添语句“在fix下修改文件”
然后在master分支上合并fix分支
产生合并分支冲突:

解决办法:
第一步:打开产生合并冲突的文件:demo.txt

第二步:手动处理文件

第三步:将处理好的文件提交


注意:手动处理好的文件需要提交,但是单个提交会报错“cannot do partial commit during a merge”,此时只需要在最后加上 -i 参数即可解决

第四步:推送至远程仓库


标签操作
Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便地切换到标记时的状态。
比较有代表性的是人们会使用这个功能来标记发布节点(v1.0、v1.2等)
git tag 列出已有的标签
git tag [name] 创建标签
git push [shortName] [name] 将标签推送至远程仓库
git checkout -b [branch] [name] 检出标签
①创建标签

②列出已有的标签

③推送标签至远程仓库

④更新内容,再次推送标签


⑤检出标签
检出标签时需要新建一个分支来指向某个标签,检出标签的命令格式:
git checkout -b [branch] [name]

注意:标签是静态的,相当于快照。打好标签以后,文件的内容就定格了,不会随着后来的push内容而改变。
在IDEA中使用Git
在IDEA中配置Git
在IDEA中使用Git,本质上还是使用本地安装的Git软件,所以需要在IDEA中配置Git

获取Git仓库
在IDEA中使用Git获取仓库有两种方式:
本地初始化仓库
从远程仓库克隆
本地初始化仓库:
点击VCS--->创建Git仓库--->在弹出的路径中选择一个地方创建Git仓库
VCS是版本控制的意思

从远程仓库克隆:
方法一:VCS--->在GitHub上共享项目


方法二:Git--->克隆--->输入URL


本地仓库操作
将文件加入暂存区
将暂存区的文件提交到版本库
查看日志
将文件加入暂存区:
选中文件--->右键--->Git--->添加

将暂存区的文件提交到版本库:
选中文件--->右键--->Git--->提交
输入message,然后点提交即可

注意,也可以用快捷键:
√ 是提交,点击√自动加入暂存区并提交

查看日志:
点击“显示历史记录”的图标即可查看历史记录


远程仓库操作
查看远程仓库
添加远程仓库
推送至远程仓库
从远程仓库拉取
查看远程仓库:
选中项目--->右键--->Git--->管理远程

添加远程仓库:点击“+”可以添加一个远程仓库,点击“-” 可以断开本地仓库和远程仓库的联系

推送至远程仓库和拉取远程仓库:
点击↗即可推送,点击↙即可拉取


分支操作
查看分支
创建分支
切换分支
将分支推送到远程仓库
合并分支
查看分支:
选中文件--->右键--->Git--->分支


也可以在IDEA右下角快速找到分支:

创建分支:
点击“+”:创建新分支

切换分支:
点击你需要切换到的分支,然后点击签出

将分支推送至远程库:
点击新建的分支,然后点击推送

合并分支:

Git部分到此结束~~
相关文章:
【瑞吉外卖】Git部分学习
Git简介 Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git仓库来存储和管理这些文件,Git仓库分为两种: 本地仓库:开发人员自己电脑上的Git仓库 远程仓库:远程服务器上的Git仓库…...
如何阐述自己做了一个什么样的东西
线上qps2000,主要的性能瓶颈在于出现在数据库I/O上。另外,如果是一个正常部署的容器,qps能达到几百就不错了。资讯服务现在做了静态的底层页,所以热点新闻多数会命中底层页,即便没有命中底层页,也会走多层的…...
TC3XX - MCAL知识点(二十二):QSPI 同步与异步 Mcal配置及代码实战
目录 1、MCAL配置 1.1、配置目标 1.2、同步QSPI配置 1.2.1、SpiGeneral 1.2.2、SpiMaxChannel 1.2.3、SpiMaxJob...
led台灯哪些牌子性价比高?推荐几款性价比高的护眼台灯
作为学龄期儿童的家长,最担心的就是孩子长时间学习影响视力健康。无论是上网课、写作业、玩桌游还是陪伴孩子读绘本,都需要一个足够明亮的照明环境,因此选购一款为孩子视力发展保驾护航的台灯非常重要。为大家推荐几款性价比高的护眼台灯。 …...
什么情况下容易发生锁表及如何处理
目录 什么情况下容易发生锁表发生锁表怎么解决 什么情况下容易发生锁表 在数据库中,当多个事务同时竞争访问同一个表的资源时,可能会发生锁表现象,导致性能下降甚至阻塞。以下情况容易导致锁表问题: 大事务操作:如果一…...
elk开启组件监控
elk开启组件监控 效果: logstash配置 /etc/logstash/logstash.yml rootnode1:~# grep -Ev "^#|^$" /etc/logstash/logstash.yml path.data: /var/lib/logstash path.logs: /var/log/logstash xpack.monitoring.enabled: true xpack.monitoring.elasti…...
Java Random 类的使用
Java中的Random类是用来生成伪随机数的工具类。它可以用来生成随机的整数、浮点数和布尔值。以下是Java Random类的一些常见用法: 创建Random对象: Random random new Random();生成随机整数: int randomNumber random.nextInt(); // 生…...
完美的分布式监控系统——Prometheus(普罗米修斯)与优雅的开源可视化平台——Grafana(格鲁夫娜)
一、基本概念 1、之间的关系 prometheus与grafana之间是相辅相成的关系。作为完美的分布式监控系统的Prometheus,就想布加迪威龙一样示例和动力强劲。在猛的车也少不了仪表盘来观察。于是优雅的可视化平台Grafana出现了。 简而言之Grafana作为可视化的平台ÿ…...
pycharm的Terminal中如何设置打开anaconda3的虚拟环境
在pycharm的File -> Settings -> Tools -> Terminal下面,如下图所示 修改为红框中内容,然后关闭终端在重新打开终端,即可看到anaconda3的虚拟环境就已经会被更新...
Jmeter(四) - 从入门到精通 - 创建网络测试计划(详解教程)
1.简介 在本节中,您将学习如何创建基本的 测试计划来测试网站。您将创建五个用户,这些用户将请求发送到JMeter网站上的两个页面。另外,您将告诉用户两次运行测试。因此,请求总数为(5个用户)x(2…...
Flowable-结束事件-空结束事件
目录 定义图形标记XML内容 定义 空结束事件是最常见的一种结束事件,也是最简单的一种结束事件,只要把结束任务置于流程 或分支的最后节点,流程实例运行到该节点的时候,流程引擎就会结束该流程实例或分支。前面提 到,结…...
Elasticsearch:如何创建 Elasticsearch PEM 和/或 P12 证书?
你是否希望使用 SSL/TLS 证书来保护你的 Elasticsearch 部署? 在本文中,我们将指导你完成为 Elasticsearch 创建 PEM 和 P12 证书的过程。 这些证书在建立安全连接和确保 Elasticsearch 集群的完整性方面发挥着至关重要的作用。 友情提示:你可…...
数仓架构模型设计参考
1、数据技术架构 1.1、技术架构 1.2、数据分层 将数据仓库分为三层,自下而上为:数据引入层(ODS,Operation Data Store)、数据公共层(CDM,Common Data Model)和数据应用层ÿ…...
RedisTemplate.opsForGeo()用法简介并举例
RedisTemplate.opsForGeo()是RedisTemplate类提供的用于操作Geo类型(地理位置)的方法。它可以用于对Redis中的Geo数据结构进行各种操作,如添加地理位置、获取距离、获取位置信息等。 下面是一些常用的RedisTemplate.opsForGeo()方法及其用法…...
Android OkHttp源码分析--拦截器
拦截器责任链: OkHttp最核心的工作是在 getResponseWithInterceptorChain() 中进行,在进入这个方法分析之前,我们先来了 解什么是责任链模式,因为此方法就是利用的责任链模式完成一步步的请求。 拦截器流程: OkHtt…...
docker:如何传环境变量给entrypoint
使用shell,不带中括号 ENTRYPOINT .\main -web -c $CONFIGENTRYPOINT [sh, -c, ".\main -web -c $CONFIG"]docker build --build-arg ENVIROMENTintegration // 覆盖ENTRYPOINT命令 使用shell脚本 ENTRYPOINT ["./entrypoint.sh"]entrypoint.sh 镜像是a…...
kuboard安装和使用
windows平台下使用docker和docker-compose部署Kuboard,并添加Docker Desktop for windows的k8s单机集群 使用docker安装 docker run -d \--restartunless-stopped \--namekuboard \-p 80:80/tcp \-p 10081:10081/tcp \-e KUBOARD_ENDPOINT"http://内网IP:80&…...
海外直播种草短视频购物网站巴西独立站搭建
一、市场调研 在搭建网站之前,需要进行充分的市场调研,了解巴西市场的消费者需求、购物习惯和竞争情况。可以通过以下途径进行市场调研: 调查问卷:可以在巴西市场上发放调查问卷,了解消费者的购物习惯、偏好、购买力…...
C#图像均值和方差计算实例
本文展示图像均值和方差计算实例,分别实现RGB图像和8位单通道图像的计算方法 实现代码如下: #region 方法 RGB图像均值 直接操作内存快/// <summary>/// 定义RGB图像均值函数/// </summary>/// <param name="bmp"></param>/// <retur…...
【动态规划】数字三角形
算法提高课课堂笔记。 文章目录 摘花生题意思路代码 最低通行费题意思路代码 方格取数题意思路代码 摘花生 题目链接 Hello Kitty想摘点花生送给她喜欢的米老鼠。 她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。 地里每个道…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
