一文详解Git
一. Git 概述
1.1 什么是 Git
Git 是一个免费的、开源的分布式版本控制工具, 主要用于管理开发过程中的源代码文件,在软件开发过程中被广泛使用。通过Git仓库来存储和管理这些文件,Git仓库分为二种:
- 本地仓库:开发人员自己电脑上的仓库
- 远程仓库:远程服务器上的仓库
1.2 Git基本概念
工作区:包含 .git 文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码。
暂存区:.git 文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫 stage。暂存区是一个临时保存修改文件的地方。
版本库:前面看到的 .git 隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。
1.3 代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。 局域网里有GitLab,互联网里有 GitHub(外网)、Gitee 码云(国内网站)。
gitHub(地址:GitHub: Let’s build from here · GitHub):是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名gitHub
码云(地址:Gitee - 企业级 DevOps 研发效能平台):是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快
GitLab(地址:The DevSecOps Platform | GitLab):是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务
BitBucket (地址:Bitbucket | Git solution for teams using Jira):是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户
二.Git的下载和安装
1.下载
打开官网,找到Windows版的Git下载即可
2.安装
双击安装包,傻瓜式安装即可
3.验证
安装完成后在任意目录点击鼠标右键,如果能看到如下菜单,则表示安装完成
Git GUI Here:打开 Git 图形界面
Git Bash Here:打开 Git 命令行
三.Git 常用命令
3.1 设置用户签名
用户签名的作用
签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。
基本语法
git config --global user.name “用户名”git config --global user.email “邮箱”
3.2 创建本地Git仓库
要使用 Git 来对我们的代码进行控制,首先要获得 Git 仓库。可以用二种方式来创建本地仓库,分别是本地初始化一个仓库、或者从远程仓库克隆过来。
1.本地初始化仓库步骤
步骤一:在任意目录下创建一个空目录,作为我们的本地Git仓库
步骤二:进入这个目录,右键打开Git Bash窗口
步骤三:在命令行窗口中输入命令:git init
步骤四:如果在当前目录下看到.git文件夹,代表初始化仓库成功
步骤五:.git文件夹是隐藏文件夹,需要设置显示隐藏文件夹才能看到
2.从远程仓库克隆的步骤
步骤一:在任意目录下创建一个空目录
步骤二:进入这个目录,右键打开Git Bash窗口
步骤三:在命令行窗口中输入命令:git clone “远程仓库地址”
3.3 查看本地库状态
命令
git status
1.首次查看本地库状态
首次查看,本地库的工作区没有任何文件
2.新增文件
新增文件的方式有二种
方式一:直接在本地仓库内新建一个文件,步骤如下
第一步:创建一个名为 hello 的文本文档
第二步:在文本文档中随便写一些代码
方式二:通过 vim 命令新建
第一步:在 git 的命令行窗口中输入命令:vim hello.txt
第二步:在新界面按 i 进入插入模式,然后输入文件内容
第三步:按 esc 进入命令模式,输入命令 :wq 保存文件并退出当前命令界面
第四步:在命令界面输入命令 ll 可以发现,该本地库确实存在该文件了
第五步:在命令行界面输入 cat 文件名,即可查看文件内容
3.再次查看本地库状态
再次输入命令:git status,即可检测到未追踪的文件
3.4 添加暂存区
相关文章:

一文详解Git
一. Git 概述 1.1 什么是 Git Git 是一个免费的、开源的分布式版本控制工具, 主要用于管理开发过程中的源代码文件,在软件开发过程中被广泛使用。通过Git仓库来存储和管理这些文件,Git仓库分为二种: 本地仓库:开发人…...

【单片机】DS2431英文手册,中文手册,翻译
DS2431是一款1024位的1-Wire EEPROM芯片,以每个256位的四个内存页面组织。数据被写入8字节的暂存区,经过验证,然后复制到EEPROM存储器中。作为一个特殊功能,四个内存页面可以单独地被写保护,或者被置于EPROM仿真模式&a…...

centos7部署openldap开启memberof并接入jumpserver
文章目录 前言1.yum安装openldap2.配置密码3.导入配置4.定义域5.配置memberof6.配置base dn7.安装phpldapadmin管理8.调整httpd的配置9.调整php的配置10.登陆php管理页面11.同步旧ldapsever用户数据(可省略)12.客户端配置13.对接jumpserver 前言 介绍如何在centos7上部署openl…...

Unity游戏源码分享-仿开心消消乐Match3Jewel
Unity游戏源码分享-仿开心消消乐Match3Jewel 工程地址: https://download.csdn.net/download/Highning0007/88198762...

知识图谱基本工具Neo4j使用笔记 四 :使用csv文件批量导入图谱数据
文章目录 一、系统说明二、说明三、简单介绍1. 相关代码以及参数2. 简单示例 四、实际数据实践1. 前期准备(1) 创建一个用于测试的neo4j数据库(2)启动neo4j 查看数据库 2. 实践(1) OK 上面完成后࿰…...
[bug修复]状态数据在useEffect初始化时更新无效
(bug修复类型的博客还是用汉语写捏) 前两天在做一个管理页面前端的时候,出现了这样的问题 function Son(props){const [a,seta]useState(0)useEffect(()>{seta(props.name)},[])return(<div>{a}</div>) } 这是当时情况的一…...

使用 API Gateway Integrator 在 Quarkus 中实施适用于 AWS Lambda 的 OpenAPI
AWS API Gateway 集成使得使用符合 OpenAPI 标准的 Lambda Function 轻松实现 REST API。 关于开放API 它是一个 允许以标准方式描述 REST API 的规范。 OpenAPI规范 (OAS) 为 REST API 定义了与编程语言无关的标准接口描述。这使得人类和计算机都可以发现和理解服务的功能&am…...

【JVM】JVM中的分代回收
文章目录 分代收集算法什么是分代分代收集算法-工作机制MinorGC、 Mixed GC 、 FullGC的区别是什么 分代收集算法 什么是分代 在java8时,堆被分为了两份: 新生代和老年代【1:2】 其中: 对于新生代,内部又被分为了三…...

C# Linq源码分析之Take方法
概要 Take方法作为IEnumerable的扩展方法,具体对应两个重载方法。本文主要分析第一个接收整数参数的重载方法。 源码解析 Take方法的基本定义 public static System.Collections.Generic.IEnumerable Take (this System.Collections.Generic.IEnumerable source…...
从后往前读取列表的方法
从后往前读取列表的方法 方法1:使用for循环遍历列表时,可以使用reverse()函数将列表反转,然后再遍历。 # 列表 num [0, 1, 2, 3]# 反向遍历 for i in reversed(num):print(i)输出结果: 3 2 1 0方法2:先计算列表长度…...
数据库--数据类型
数据库相关链接: 数据库基础操作--增删改查:http://t.csdn.cn/189CF 数据库--三大范式、多表查询、函数sql:http://t.csdn.cn/udJSG 数据类型 创建表的时候,我们在类型这里给出了不同的选项,比如有int ,…...

小型双轮差速底盘机器人实现红外跟随功能
1. 功能说明 本文示例将实现R023样机小型双轮差速底盘跟随人移动的功能。在小型双轮差速底盘前方按下图所示安装3个 近红外传感器,制作一个红外线发射源,实现当红外发射源在机器人的检测范围内任意放置或移动时,机器人能追踪该发射源。 2. 电…...
TCP协议网络编程 回显服务器,客户端实现
回显服务器表示客户端传来的请求是什么,服务器就回应什么,客户端不用对传来的数据进行处理,主要是为了熟悉TCP协议提供的API的使用 对于代码的解释全作为注释写在了代码上,推荐复制到编程软件中查看 UDP协议实现回显服务器可以看…...
3.4 Spring MVC注解
注解名称 注解说明 RequestMapping 用来处理请求地址映射的注解,可以在接口、类和方法上使用 value属性 表示请求地址,与path属性一致 method属性 表示接收HTTP请求方法,默认接收所有请求方法,请求包括GET、POST、PUT、DEL…...

OpenCV实例(八)车牌字符识别技术(三)汉字识别
车牌字符识别技术(三)汉字识别 1.代码实例2.遇到问题3.汉字识别代码实例 相较于数字和英文字符的识别,汽车牌照中的汉字字符识别的难度更大,主要原因有以下4个方面: (1)字符笔画因切分误差导致非笔画或笔画流失。 (2…...

运维监控学习笔记2
硬件监控: 1)使用IPMI 2)机房巡检 路由器和交换机: 使用SNMP(简单网络管理协议)进行监控。 Linux 安装snmp: yum install -y net-snmp net-snmp-utils 说明:net-snmp是安装在snm…...

【深度学习】遗传算法[选择、交叉、变异、初始化种群、迭代优化、几何规划排序选择、线性交叉、非均匀变异]
目录 一、遗传算法二、遗传算法概述2.1 选择2.2 交叉2.3 变异 三、遗传算法的基本步骤3.1 编码3.2 初始群体的生成3.3 适应度评估3.4 选择3.5 交叉3.6 变异3.7 总结 四、遗传算法工具箱4.1 initializega4.2 ga4.3 normGeomSelect4.4 arithXover4.5 nonUnifMutation 五、遗传算法…...

【小吉带你学Git】讲解GitHub操作,码云操作,GitLab操作
🎊专栏【Git】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 🌺欢迎并且感谢大家指出小吉的问题🥰 文章目录 🍔GitHub操作⭐安装GitHub插件⭐在idea中设置GitHub账号&…...
nginx基础
nginx 具体就是一个轻量级以及高性能的web服务软件。 nginx特点 1、稳定性高。(但不如apache) 2、系统资源消耗比较低。(处理http请求的并发能力较高,单台处理器可以处理3w-5w的并发请求) 注:一般在企…...

【Windows API】获取卷标、卷名
1、卷->卷标 使用FindFirstVolume()和FindNextVolume()函数体系,枚举系统所有卷(Volume)的例子,然后获取卷标、卷类型。这个方式可以枚举出没有驱动器号(卷标)的卷。 int TestMode1() {HANDLE hVolume…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
背包问题双雄:01 背包与完全背包详解(Java 实现)
一、背包问题概述 背包问题是动态规划领域的经典问题,其核心在于如何在有限容量的背包中选择物品,使得总价值最大化。根据物品选择规则的不同,主要分为两类: 01 背包:每件物品最多选 1 次(选或不选&#…...
JavaScript 标签加载
目录 JavaScript 标签加载script 标签的 async 和 defer 属性,分别代表什么,有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...