Git——初识git

news2024/11/26 12:38:42

1、git概述 

1.1 简介

Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。

Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作 流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。

1.2 为什么需要版本控制

个人开发过渡到团队协作

1.3 版本控制工具

➢ 集中式版本控制工具 CVS、SVN(Subversion)、VSS……

集中化的版本控制系统诸如 CVS、SVN 等,都有一个单一的集中管理的服务器,保存 所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或 者提交更新。多年以来,这已成为版本控制系统的标准做法。

这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什 么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要 远比在各个客户端上维护本地数据库来得轻松容易。

事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕 机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

➢ 分布式版本控制工具 Git、Mercurial、Bazaar、Darcs……

像 Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码 仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用 其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次 对整个文件仓库的完整备份

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)

2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

1.4 Git 工作机制

工作区:代码存放的磁盘的目录位置

暂存区:暂存区的存在是让git感知代码的存在,它也是可以删除的

本地库:一旦生成历史版本,该版本的代码就不能删掉了

1.5 Git 和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库

➢ 局域网

         ✓ GitLab

➢ 互联网

        ✓ GitHub(外网)

         ✓ Gitee 码云(国内网站)

1.6 安装与使用

安装部分省略

2、Git 常用命令

2.1、设置用户签名

1)基本语法

         git config --global user.name 用户名

         git config --global user.email 邮箱

2)案例实操

全局范围的签名设置:

说明:

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看 到,以此确认本次提交是谁做的。

Git 首次安装必须设置一下用户签名,否则无法提交代码。 ※注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任 何关系。

我们可以在C盘  用户下 找到 17967/.gitconfig 文件,打开

2.2 初始化本地库

其实是git来获取本地库(某一文件夹)的管理权

1)基本语法 git init

2)案例实操

选择一个空白文件夹

 

 

执行初始化后,生成了.git

2.3 查看本地库状态

1)基本语法

        git status

2)案例实操

首次查看,(工作区没有任何文件)

新增 hello.txt (vim hello.txt)  

vim中 yy是复制p是粘贴

 

再次查看状态

 

 未被追踪的文件,红色的hello.txt 表示当前文件,还只是在工作区,并没有添加到暂存区

2.4 添加暂存区

2.4.1 将工作区的文件添加到暂存区

1)基本语法

        git add 文件名

2)案例实操

 添加到暂存区,提示行末换行符被转换 Linux是 LF 而windows 是 CRLF ,我们在安装git的时候,勾选了自动转换换行符

2.4.2 查看状态(检测到暂存区有新文件)

         使用  git rm --cached <file> 将文件从暂存区删除

2.5 提交本地库

2.5.1 将暂存区的文件提交到本地库

1)基本语法

git commit -m "日志信息" 文件名

2)案例实操

这里补充一点:

Stage: 暂存区,将代码暂存到暂存区但不上传(commit),已经被git跟踪的状态 为statge,包括staging状态 和staged状态

对应的命令

git add 

添加当前目录下的文件到暂存区

Unstage: 未被Git追踪的文件状态 称为 Unstage

可以使用的命令

git reset 将所有stage状态的代码 都变成非stage状态

git rm --cached <file>

2.6 修改文件(hello.txt)

 2.6.1 检查状态 (检测到工作区有文件被修改)

2.6.2 将修改的文件再次添加暂存区

2.6.3 查看状态(工作区的修改添加到了暂存区)

2.7 查看历史版本

2.7.1 查看历史版本

1)基本语法

git reflog 查看版本信息

git log 查看版本详细信息

 

2.7.2 版本穿梭

1)基本语法

git reset --hard 版本号

2)案例实操

 

再看一例子:

Git 切换版本,底层其实是移动的 HEAD 指针,具体原理如下图所示。

 

在工作区内 永远只会显示当前Head指针指向的版本(因为git并不是靠副本的方法实现版本控制)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/143525.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

rtl8188eus Linux驱动移植

rtl8188eus Linux驱动移植 rlt8188eus作为无线USB网卡&#xff0c;可以给我们的Linux设备提供无线上网能力&#xff0c;也能配置为AP&#xff0c;给其它无线设备提供上网能力。在使用较低版本的内核时&#xff0c;内核中不含rtl8188eus驱动&#xff0c;因此尝试自己移植&#…

1、常见的存储设备

文章目录较为常见的存储设备机械硬盘简介固态硬盘简介U盘简介固态U盘MMC卡SD卡简介TF卡NM卡MS卡CF卡CFExpress卡磁带光盘较为常见的存储设备 目前较为常见的存储设备&#xff0c;从电脑用的&#xff1a; 机械硬盘固态硬盘U盘固态U盘 到单反相机、运动相机、手机、行车记录仪…

BigDecimal 基本使用和常用方法

背景 涉及到比较大的数字之间的计算&#xff0c;使用float、double这样的浮点数就不那么准确了。因为不论是float 还是double都是浮点数&#xff0c;而计算机是二进制的&#xff0c;浮点数会失去一定的精确度。所以在商业计算中基本要用java.math.BigDecimal 一、初始化使用…

蹭秦霄贤流量,郭德纲凌晨时分转发老秦动态

都知道德云社董事长王慧很忙&#xff0c;每天除了打理公司业务&#xff0c;还要照顾众多徒弟们的衣食住行。王慧作为德云社董事长&#xff0c;她的忙都在情理之中&#xff0c;而郭德纲作为德云社总班主&#xff0c;他的时间就更加弥足珍贵了。 可是谁能想到&#xff0c;就是这样…

VSCode配置C++开发环境:OpenCV

文章目录Linux编译调试配置OpenCVWin10编译调试配置OpenCV参考最近在做深度学习的C部署相关工作&#xff0c;于是写下这篇文档记录环境配置的过程。环境配置是一项非常繁琐的工作&#xff0c;无论从大学做相关作业还是到工作上。做这项工作需要技术的同时&#xff0c;还需要点运…

从0到1完成一个Vue后台管理项目(一、创建项目)

1.创建文件夹 这很简单&#xff0c;自己选一个盘&#xff0c;然后建一个文件夹即可 我选择的是D盘&#xff0c;最后的目录是vue-admin 注意&#xff1a;最后的目录一定要是英文 2.创建项目 初始化 npm init -y 局部安装vue-cli vue-cli的版本一直在更新&#xff0c;所以不推…

品牌舆情总结及品牌修复,品牌舆情监测监控怎么做?

如今互联网大数据时代&#xff0c;信息流通越来越快&#xff0c;影响覆盖面广。品牌一旦出现舆论&#xff0c;很容易引起大范围的热议&#xff0c;对品牌发展造成不利影响&#xff0c;进而影响品牌声誉。接下来TOOM舆情监测小编带您简单了解品牌舆情总结及品牌修复&#xff0c;…

Linux_Study

文章目录1.操作系统概述1.1 操作系统的作用1.2 常见的操作系统2.Linux介绍2.1 诞生2.2 Linux内核3. Linux基础操作3.1 虚拟机快照3.2 Linux 目录结构3.3 命令、命令行3.4 ls命令&#xff08;列表命令&#xff09;3.5 cd/pwd命令&#xff08;目录命令&#xff09;3.6 相对路径、…

OPENCPU学习---开发环境搭建

BC260Y-CN模组移远公司提供了QuecOpen的开发方案&#xff0c;可以通过提供的SDK中相应的接口快速进行应用开发。开发环境的搭建&#xff0c;首先要准备好开发板、SDK包以及下载工具&#xff0c;准备好后进行编译配置即可进行开发。目前移远提供的BC260Y开发SDK版本为&#xff1…

Lambda表达式超详细总结(简单易懂)

文章目录1、什么是Lambda表达式2、为什么使用Lambda表达式3、函数式接口&#xff08;lambda表达式的使用前提&#xff09;4、推导Lambda表达式5、Lambda表达式语法1、什么是Lambda表达式 Lambda表达式&#xff0c;也可称为闭包。其本质属于函数式编程的概念&#xff0c;是Java…

js判断元素是否在可视区域内

基本概念 首先需要搞清楚 clientHeight、scrollTop 的区别&#xff0c;通俗地说&#xff0c;clientHeight 指的是网页可视区域的高度&#xff0c;scrollTop 指的是网页被卷起来的高度&#xff0c;可以参考这篇文章&#xff1a;彻底搞懂clientHeight、offsetHeight、scrollHeig…

SQL -- MySQL 初识

SQL SQL的概述&#xff1a; SQL全称&#xff1a; Structured Query Language&#xff0c;是结构化查询语言&#xff0c;用于访问和处理数据库的标准的计算机语言。 SQL语言1974年由Boyce和Chamberlin提出&#xff0c;并首先在IBM公司研制的关系数据库系统System上实现美国国家…

入门远程连接技术

目录 1、ssh实验 要求&#xff1a;a.两台机器&#xff1a;第一台机器作为客户端&#xff0c;第二台机器作为服务器&#xff0c;在第一台使用rhce用户免密登录第二台机器。b.禁止root用户远程登录和设置三个用户sshuser1, sshuser2, sshuser3&#xff0c; 只允许sshuser3登录&…

DOM(二):节点操作、事件高级

节点操作节点层级事件高级事件对象节点概述 节点至少拥有nodeType&#xff08;节点类型&#xff09;、nodeName&#xff08;节点名称&#xff09;、nodeValue&#xff08;节点值&#xff09;这三个基本属性。 元素节点 nodeType为1属性节点 nodeType为2文本节点 nodeType为3 &…

字节前端必会vue面试题集锦

Vue3有了解过吗&#xff1f;能说说跟vue2的区别吗&#xff1f; 1. 哪些变化 从上图中&#xff0c;我们可以概览Vue3的新特性&#xff0c;如下&#xff1a; 速度更快体积减少更易维护更接近原生更易使用 1.1 速度更快 vue3相比vue2 重写了虚拟Dom实现编译模板的优化更高效的…

3、数据库中的约束数据库设计

约束 * 概念&#xff1a; 对表中的数据进行限定&#xff0c;保证数据的正确性、有效性和完整性。 * 分类&#xff1a; 1. 主键约束&#xff1a;primary key 2. 非空约束&#xff1a;not null 3. 唯一约束&#xff1a;unique 4. 外键约束&#xff1a;forei…

3.0里程碑:Topomel Box 现已在微软商店可用

猿友好&#xff01; 今天是个大喜的日子 我的程序 Topomel Box 的第三个版本(3.0)正式上架微软商店。通过微软商店这个统一的分发渠道&#xff0c;Topomel Box 有望与更多国家的用户见面并提供服务。 安装方法很简单&#xff0c;只需要打开微软商店&#xff08;Microsoft Sto…

⚡️【数据结构】二叉树的概念和相关知识总结

&#x1f332;目录 1.树概念及结构 1.1树的概念 1.2 树的相关概念 1.3 树的表示 1.4 树在实际中的运用&#xff08;表示文件系统的目录树结构&#xff09; 2.二叉树概念及结构 2.1概念 2.2满二叉树 2.3完全二叉树 2.4满二叉树和完全二叉树的区别 2.5二叉树的性质 2.6…

linux日志管理总结,rules详解、轮转详解、实例展示。

概述 ​ 1、日志文件记录系统事件&#xff0c;包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等 ​ 2、通过日志来检查错误发生的原因&#xff0c;或者受到攻击时攻击者留下的痕迹。 1. rsyslog系统日志管理 1.1 处理日志的程序&#…

工控安全-Modbus重放攻击

文章目录Modbus-重放攻击Modbus-仿真环境(ModSim)Modbus-协议采集(ModbusScan)抓取Modbus/TCP流量使用青云工具进行重放攻击Modbus-重放攻击 Modbus-仿真环境(ModSim) 首先开启Modbus仿真环境 ip地址是10.10.100.11 ModSim32&#xff0c;这个软件是模拟Modbus协议的一个仿真…