【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(九)-git(1)

Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。

文章目录

前言

一、git是什么

二、git基本概念

三、git基本命令

总结


前言

Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。


提示:以下是本篇文章正文内容,下面案例可供参考

一、git是什么

Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。

在开发中,Git已成为现在主流的一种代码托管技术(版本管理工具),基本上大多数的公司都在使用Git进行协同开发。很多代码托管平台也是基于Git来实现的。

Git特点
优点:

  • 适合分布式开发,强调个体;
  • 公共服务器压力和数据量都不会太大;
  • 速度快、灵活;
  • 任意两个开发者之间可以很容易的解决冲突;
  • 离线工作。

缺点:

  • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息;
  • 权限控制不友好;如果需要对开发者限制各种权限的建议使用SVN。
  • Git与SVN的区别
  • SVN是集中式版本控制系统,而Git是分布式版本控制系统,Git与SVN的区别可参考Git与SVN的区别。。

二、git基本概念

  • 工作区:仓库的目录。工作区是独立于各个分支的。
  • 暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。
  • 版本库:存放所有已经提交到本地仓库的代码版本
  • 版本结构:树结构,树中每个节点代表一个代码版本。

三、git基本命令

 设置全局用户名,信息记录在~/.gitconfig文件中

git config --global user.name xxx

 设置全局邮箱地址,信息记录在~/.gitconfig文件中

git config --global user.email xxx@xxx.com

 将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中

git init


 查看仓库状态

git status

当我们在当前目录下创建一个新文件,查看仓库状态会提示我们新创建的文件没有添加到仓库的暂存区中!!


 将XX文件添加到暂存区

git add XX

将所有待加入暂存区的文件加入暂存区

git add .


 将暂存区的内容提交到当前分支

git commit -m "给自己看的备注信息"


 当文件被修改后

再将它添加到暂存区中 


 查看XX文件相对于暂存区修改了哪些内容

git diff XX

(注:如果修改后的文件已被添加到暂存区就查看不出来修改的区别!!)


将文件从仓库索引目录中删掉:

git rm --cached XX


查看当前分支的所有版本

git log

 

一行展示 :

git log --pretty=oneline


将代码库回滚到上一个版本:

git reset --hard HEAD^ 或 git reset --hard HEAD~
  •  往上回滚两次,以此类推:
git reset --hard HEAD^^
  • 往上回滚100个版本:
git reset --hard HEAD~100
  •  回滚到某一特定版本
git reset --hard 版本号


查看HEAD指针的移动历史(包括被回滚的版本)

git reflog


 将XX文件尚未加入暂存区的修改全部撤销

git checkout — XX或git restore XX

 

 

 


作用是将暂存区的文件从暂存区撤出,但不会更改文件

git restore --staged xxx

 当我们新创建一个文件:

添加到暂存区

 

修改另一个read.txt文件后,存入暂存区,并提交。


 我们也可以修改两个文件,只添加一个文件并提交。


 我们新创建两个文件a.txt和b.txt,然后都将它们添加到暂存区中。

并 提交到版本库。


当我们把a.txt和b.txt两个文件删除后

 我们也可以把删除a.txt和b.txt这个操作也添加进暂存区,并提交到版本库进行持久化

 此时,我们可以通过git restore --staged xxx将从工作区存入暂存区的操作撤销,然后再通过git restore xxx将xxx在工作区进行的操作进行撤销。

此时,我们删除的a.txt文件就又被我们找回来了。


总结

Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue3中为Ant Design Vue中Modal.confirm自定义内容

在一次业务开发时代码时,碰到了一种既想要Modal.confirm样式,又想要定制其content内容的情况。 大部分情况下,使用Modal.method()这种方式时,可能content内容固定都是字符串,那如果想要做更高级的交互怎么办&#xff…

将QT移植到IMX6ULL开发板

文章目录 前言一、编译系统1.设置交叉编译工具链2.编译系统3.烧写 二、Linux中下载QT1.安装 Qtcreator2.创建第一个程序3.配置 QtCreator 开发环境(1)打开选项界面(2)选择编译器(3)设置编译器(4…

SoftCLT: 时间序列的软对比学习《Soft Contrastive Learning for Time Series》(时间序列、时序分类任务、软...

2024年6月25日,10:11,好几天没看论文了,一直在摸鱼写代码(虽然也没学会多少),今天看一篇师兄推荐的。 论文: Soft Contrastive Learning for Time Series 或者是: Soft Contrastive Learning for Time Seri…

AutoX.js从某音分享链接解析出视频ID

背景 从某音分享的链接中解析出数字的videoID,用来做评论Intent跳转 思路 基本所有的短链接都是302跳转或者js跳转,熟悉http协议都知道,当状态码为302,从headers中提取Location即刻获得视频的原链接 链接中就带有videoId 要注意…

【串口通信】之TTL电平

1. 什么是串口 串口,全称为串行通信端口,是一种计算机硬件接口,用于实现数据的串行传输。与并行通信不同,串口通信一次只传输一个比特,数据通过串行线按顺序传输。串口通信在嵌入式系统、工业控制、计算机与外围设备通信等领域非常常见 2. 什么是串口通信 串口通信是指通过…

提升速卖通店铺排名:自养号测评的实战策略

卖家们追求的目标之一就是推广爆品。通过有效的推广策略,可以增加爆品的曝光度、吸引更多的买家,并带来更多的销售机会。那么,速卖通上如何推广爆品呢?下面我们来探讨一下这个问题。 首先,为了推广爆品,卖家需要进行…

护眼落地灯哪个牌子好?盘点五款必入不踩雷的护眼大路灯

护眼落地灯哪个牌子好?在这个快节奏的时代,护眼落地灯已经从一种高端选择转变为日常用眼生活中的必须品。不论是提升普通照明,还是针对孩子学习是改善光线质量环境,一款优秀的护眼落地灯都能成为我们生活中的照明神器。怎么选择一…

xmind2testcase工具将测试用例从Xmind转为CSV导入禅道

使用xmind编写测试用例,使用xmind2testcase工具将测试用例从Xmind转为CSV导入禅道,便于管理。 1.工具准备 第一步:安装python 第二步:安装xmind2testcase工具 运行-cmd-打开命令提示符弹窗,输入安装命令 安装命令&…

数千万“四高”中老年患者,如何推动国产营养保健品创新

“三高”指高血压、高血糖(糖尿病)、高血脂,是中老年群体的常见病。 然而,除了前述三者,高尿酸血症在我国的患病率正逐年提高,已成为仅次于糖尿病的第二大代谢性疾病。痛风是高尿酸血症典型症状之一。 加上…

大华设备接入GB28181视频汇聚管理平台EasyCVR安防监控系统的具体操作步骤

智慧城市/视频汇聚/安防监控平台EasyCVR兼容性强,支持多协议接入,包括国标GB/T 28181协议、GA/T 1400协议、部标JT808协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SDK等,并能对外分发RTMP、…

Linux 文件系统以及日志管理

一、inode 与block 1. inode 与block详解 在文件存储硬盘上,硬盘的最小存储单位叫做“扇区”,每个为512字节。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取…

pytest-yaml-sanmu(七):使用fixture返回值

fixture 是 pytest 中非常重要的功能,大部分项目都可能会用到 fixture。 pytest 的内置标记 usefixtures 可以帮助用例自动的使用 fixture 1. 创建 fixture pytest 中的 fixtures 大致有两个用途 在用例执行之前、执行之后,自动的执行 通过 fixture …

基于FreeRTOS+STM32CubeMX+LCD1602+AD5621(SPI接口)的DAC控制输出Proteus仿真

一、仿真原理图: 二、运行效果: 三、STM32CubeMX配置: 1)、GPIO配置: 2)、freertos配置: 四、软件部分: 1)、main主函数: /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file …

(二)Java 线程

一、创建和运行线程 程序在启动时,默认就已经存在了一个主线程,如果想要在主线程之外创建线程,有以下几种方式: 1.1 直接使用 Thread // 创建线程对象 Thread t new Thread(){Overridepublic void run() {// 要执行的任务} };…

加密(3)非对称加密

一、介绍 1、概念 非对称加密,又称现代加密算法,非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。加密和解密使用的是两个不同的密钥,这种算法叫作非对称加密算法。 2、示例 首先生成密钥对, 公钥为(5,14)&#…

Redis基础教程(七):redis列表(List)

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

Redis-Redis可视化工具Redis Insight下载及安装

下载 1、博主已经上传资源,点此下载 2、点此进入官方下载 2.1 点击Installing Redis Insight 2.2 点击Install on desktop 2.3 选择Install on desktop,点击Redis Insight is available for download for free from this web site从网站下载 2.4 下载…

中小企业适用的HTTPS证书

在当今数字化时代,企业的网站安全及其数据传输的安全是至关重要的。对于中小企业而言,选择适合的HTTPS证书(即SSL证书)是确保网站通信安全、增强用户信任和保护企业数据不可或缺的一步。下面将围绕中小企业适用的HTTPS证书进行深入…

【CT】LeetCode手撕—4. 寻找两个正序数组的中位数

目录 题目1- 思路2- 实现⭐4. 寻找两个正序数组的中位数——题解思路 3- ACM 实现 题目 原题连接:4. 寻找两个正序数组的中位数 1- 思路 思路 将寻找中位数 ——> 寻找两个合并数组的第 K 大 (K代表中位数) 实现 ① 遍历两个数组 &am…

【LeetCode:3033. 修改矩阵 + 模拟】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…