当前位置: 首页 > news >正文

【Git】安装以及基本操作

目录

  • 一、初识Git
  • 二、 在Linux底下安装Git
    • 一)centOS
    • 二)Ubuntu
  • 三、 Git基本操作
    • 一) 创建本地仓库
    • 二)配置本地仓库
    • 三)认识工作区、暂存区、版本库
    • 四)添加文件
    • 五)查看.git文件
    • 六)修改文件
    • 七)版本回退
    • 八)撤销修改
    • 九)删除文件

努力经营当下,直至未来明朗!


一、初识Git

  1. 版本控制器:记录每次的修改以及版本迭代的一个管理系统。
  2. Git:其实就是最常用的版本控制器。可以维护控制电脑上所有格式的文档。
    如:对于开发人员来说,最主要就是维护项目中的源代码文件。
  3. 注意:对于二进制文件如图片、视频等,具体修改的内容是未知的,只是知道如修改了其文件的存储大小等信息。

二、 在Linux底下安装Git

此时我在我的Xshell上的服务器来进行安装(centos)。

一)centOS

  1. 首先查看当前服务器底下有没有安装Git
git --version
  1. 如果已经安装,需要进行卸载
sudo yum remove git -y
  1. 补充:清屏的话使用clear

  2. 安装git

sudo yum install git -y
  1. 然后再进行检查
git --version

二)Ubuntu

  1. 首先查看当前服务器底下有没有安装Git
git --version
  1. 如果已经安装,需要进行卸载
sudo apt-get remove git -y
  1. 补充:清屏的话使用clear

  2. 安装git

sudo apt-get install git -y
  1. 然后再进行检查
git --version

三、 Git基本操作

一) 创建本地仓库

  1. 只有在Git仓库下的文件才能被Git追踪管理
  2. 以下创建本地仓库的操作在Xshell中进行完成!

1)首先创建一个目录

 mkdir gitcode   -- [即: mkdir 目录名]

2)切换到该目录底下

 cd gitcode/   -- [即: cd 目录名/]

3)进行目录的展示

ls

4)在该目录下创建空的Git仓库:.git

git init

5)显示当前目录下所有文件(Ubuntu下适用

la

6) 树形展示该目录下的所有文件:千万不要手动修改任何文件!!

tree .git/

0


二)配置本地仓库

  1. 当成功创建出一个本地仓库之后,首先就是要对本地仓库新增两个配置项:name和email。
  2. 为本地仓库设置配置项:git config
  3. 配置name和email:
git config user.name "xxx(实际name)"
git config user.email "xxx(实际email)"
  1. 查看配置,看配置是否已经成功
git config -l
  1. 重置删除配置项
git config --unset user.name   
git config --unset user.name 

11

  1. 一台服务器上可以创建多个本地仓库,加上–global的意思其实就是当前的配置项是会在当前机器的所有git仓库下都生效的
git config --global user.name "xxx"   
git config --global user.name "xxx" 
  1. 在进行global全局配置之后发现直接使用unset重置是失败的,此时想要重置必须在–unset之前加上–global
    12
    13

三)认识工作区、暂存区、版本库

  1. 在gitcode目录下新建一个文件readMe,使用git进行管理.
    ① 但是,在touch完成的情况下,Git是不能管理该readMe文件的
    ② .git称为版本库(仓库),readMe文件称为工作区
touch readMe

15

  1. 强调:不允许在.git下手动修改!!
    16

  2. 工作区、版本库和暂存区之间的关系:
    可以参考:Git工作区、暂存区和版本库
    17

  3. 如何将工作区中的内容使用git来进行管理:
    1)对工作区进行修改操作(如:新增、修改、删除)之后进行add操作则进入版本库的暂存区
    2)然后对暂存区中的内容进行commit之后就被提交到master分支底下
    3)此时就将工作区中的内容真正放到了git仓库下进行管理

  4. objects对象库:工作区文件在执行add命令之后,修改的工作区内容就会被写入对象库的一个新的git对象中,即:维护了文件的版本

  5. 暂存区中存储的不是一个个对象,而是对象索引;master分支中也是一样的,存储的也是对象的索引,也是比较轻量的。

  6. 因为仓库是刚init的,所以目前还没有暂存区,所以tree .git之后看不到index是正常的。


四)添加文件

  1. 操作文件:
编辑文件: vim 文件名
保存并退出: :wq
在屏幕上打印文件内容:cat 文件名
  1. 将文件添加到版本库的暂存区:
    (在已经创建的gitcode目录下操作)
git add 文件名1 文件名2 ···    // 提交该文件
git add .    // 提交该目录下所有文件
  1. 将暂存区文件提交到master分支:
git commit -m "提交的细节描述"

补充:如果在进行该操作时出现了以下异常:

*** Please tell me who you are.Rungit config --global user.email "you@example.com"git config --global user.name "Your Name"to set your account's default identity.
Omit --global to set the identity only in this repository.fatal: unable to auto-detect email address (got 'root@hecs-279575.(none)')
[root@hecs-279575 gitcode]# git log
fatal: bad default revision 'HEAD'

此时,只需要在当前输入下面两句命令,把引号里的改成自己的邮箱和账号就OK了,然后就可以继续操作了

  git config --global user.email "you@example.com"git config --global user.name "Your Name"

19

  1. 打印提交记录
git log
git log --pretty=one-line   // 打印一行漂亮直观日志

五)查看.git文件

根据commit_id来打印文件

git cat-file -p commit_id

20


六)修改文件

  1. Git追踪管理的不是文件,其实是修改。

  2. 修改某个文件的内容,其实就是对该文件进行一个编辑操作,所以使用的是vim操作

  3. 查看版本库的状态:git status
    21

  4. 查看暂存区和工作区内容的差异:

git diff 文件名

22

  1. 查看版本库和工作区文件的区别:
git diff HEAD -- 文件名

七)版本回退

  1. 版本回退命令:
    git reset [--soft | --mixed | --hard] [HEAD] // 本质回退的是版本库的内容;还可以回退到当前版本,即暂存区和工作区代码回退到和版本库中一致
    –soft :只回退版本库中的内容,工作区和暂存区的内容不进行回退
    –mixed(默认): 回退的是版本库和暂存区的内容,工作区的内容不进行回退
    –hard: 回退版本库、暂存区、工作区的内容。(==慎用!!==工作区中的代码也被干掉的话其实是非常头疼的,直接找不回来了)

  2. 使用示例:

git reset [--hard] commit_id   
// 代表回退到commit_id这个版本,该版本之后提交的内容都消失
  1. 如果我进行回退之后后悔了,可以利用之前git log --pretty=oneline打印好的commit_id回到想要回到的版本,同样是使用git reset [--hard] commit_id

11111
4. 那如果git log --pretty=oneline打印好的commit_id已经被clear,此时就使用git reflog打印出所使用的命令进行的操作,最前面的就是commit_id,依旧可以利用该commit_id进行版本的回退
222

  1. git版本回退速度很快的原因:
    HEAD指针是指向master的,而master中存放的是commit_id,所以在进行版本回退的过程中其实只需要修改master的commit_id即可,将指针指向新的内容。

  2. 回退到当前版本:git reset [--mixed | --hard] HEAD [filename]
    回退到当前版本的前n个版本:git reset [--mixed | --hard] HEAD^^ [filename] (^的数量取决于回退到前n个版本)


八)撤销修改

  1. 工作区、暂存区、版本库的回退操作
    yy

1)工作区和暂存区的回退
工作区+暂存区
2)工作区、暂存区、版本库的回退
版本库


九)删除文件

  1. 针对工作区中的文件进行删除:rm [filename]
  2. 将文件从工作区、暂存区、版本库中删除:
rm [filename]
git add [filename]
git commit -m "xxx"
  1. 将文件从工作区、暂存区、版本库中删除,可以简化为以下俩步骤:
git rm [filename]  // 将文件从工作区、暂存区删除
git commit -m "xxx"

222

相关文章:

【Git】安装以及基本操作

目录 一、初识Git二、 在Linux底下安装Git一)centOS二)Ubuntu 三、 Git基本操作一) 创建本地仓库二)配置本地仓库三)认识工作区、暂存区、版本库四)添加文件五)查看.git文件六)修改文…...

Spring创建Bean的过程(2)

上一节介绍了Spring创建过程中的两个重要的接口,那么它们在创建Bean的过程中起到了什么作用呢?接下来请看: Spring有三种方式寻找 xml 配置文件,根据 xml 文件内容来构建 ApplicationContext,分别为ClassPathXmlAppli…...

Linux 终端操作命令(2)内部命令

Linux 终端操作命令 也称Shell命令,是用户与操作系统内核进行交互的命令解释器,它接收用户输入的命令并将其传递给操作系统进行执行,可分为内部命令和外部命令。内部命令是Shell程序的一部分,而外部命令是独立于Shell的可执行程序…...

【Git】大大大问题之syntax error near unexpected token `(‘ 的错误解决办法

话不多说,先上图: 如图,因为在linux环境里,文件路径中含有括号(),因此报错! 解决办法 等同于 :linux下解决bash: syntax error near unexpected token (’ 的错误&am…...

Flink源码之TaskManager启动流程

从启动命令flink-daemon.sh可以看出TaskManger入口类为org.apache.flink.runtime.taskexecutor.TaskManagerRunner TaskManagerRunner::main TaskManagerRunner::runTaskManagerProcessSecurely TaskManagerRunner::runTaskManager //构造TaskManagerRunner并调用start()方法 …...

加入微软MCPP有什么优势?

目录 专业认可 技术支持 销售和市场推广支持 培训和认证 业务机会和合作伙伴网络...

leetcode做题笔记78子集

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 思路一:回溯 void backtracking(int* nums, int numsSize, int** res, int* ret…...

Skywalking-9.6.0系列之本地源码编译并启动

Skywalking相信有很多人使用过,通过容器或者下载安装包进行安装的,今天从源代码角度,拉取、构建、启动。 官方文档步骤简洁明了,我这边会结合自己遇到的一些问题做出总结。 当前构建资源版本: MAC 10.15.7IDEA 2021.…...

proteus结合keil-arm编译器构建STM32单片机项目进行仿真

proteus是可以直接创建设计图和源码的,但是源码编译它需要借助keil-arm编译器,也就是我们安装keil-mdk之后自带的编译器。 下面给出一个完整的示例,主要是做一个LED灯闪烁的效果。 新建工程指定路径,Schematic,PCB layout都选择默…...

第五十三天

●剪辑——Pr 剪辑(Film editing),即将影片制作中所拍摄的大量素材,经过选择、取舍、分解与组接,最终完成一个连贯流畅、含义明确、主题鲜明并有艺术感染力的作品。 •线性编辑 将素材按时间顺序连接成新的连续画面的技术 •非线性编辑 …...

gorm基本操作

一、gorm安装 1.下载gorm go get -u gorm.io/gorm //gorm框架 go get -u gorm.io/driver/mysql //驱动2.mysql准备工作 mysql> create database godb; mysql> grant all on *.* to admin% identified by golang123!; mysql> flush privileges;3.导入gorm框架 impo…...

华为OD机试 - 排队游戏(Java JS Python)

题目描述 新来的老师给班里的同学排一个队。 每个学生有一个影力值。 一些学生是刺头,不会听老师的话,自己选位置,非刺头同学在剩下的位置按照能力值从小到大排。 对于非刺头同学,如果发现他前面有能力值比自己高的同学,他不满程度就增加,增加的数量等于前面能力值比…...

滚动条样式更改

::-webkit-scrollbar 滚动条整体部分,可以设置宽度啥的 ::-webkit-scrollbar-button 滚动条两端的按钮 ::-webkit-scrollbar-track 外层轨道 ::-webkit-scrollbar-track-piece 内层滚动槽 ::-webkit-scrollbar-thumb 滚动的滑块 ::-webkit-scrollbar…...

掌握Python的X篇_33_MATLAB的替代组合NumPy+SciPy+Matplotlib

numPy 通常与 SciPy( Scientific Python )和 Matplotlib (绘图库)一起使用,这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。 文章目录 1. numpy1.1 numpy简介1.2 矩阵类型的nparra…...

Python解决-力扣002-两数相加

两数相加:链表表示的逆序整数求和 在这篇技术博客中,我们将讨论一个力扣(LeetCode)上的编程题目:两数相加。这个问题要求我们处理两个非空链表,它们表示两个非负整数。每个链表中的数字都是逆序存储的&…...

nginx基于源码安装的方式对静态页面、虚拟主机(IP、端口、域名)和日志文件进行配置

一.静态页面 1.更改页面内容 2.更改配置文件 3.测试 二.虚拟主机配置 1.基于IP (1)在html目录下新建目录存放测试文件 (2)修改nginx.conf文件,在htttp模块中配置两个server模块分别对应两个IP (3&am…...

[FPAG开发]使用Vivado创建第一个程序

1 打开Vivado软件,新建项目 选择一个纯英文路径 选择合适的型号 产品型号ZYNQ-7010xc7z010clg400-1ZYNQ-7020xc7z010clg400-2 如果型号选错,可以单击这里重新选择 2 创建工程源文件 可以看到文件创建成功 双击文件打开,插入代码 modul…...

使用 Python 在 NLP 中进行文本预处理

一、说明 自然语言处理 (NLP) 是人工智能 (AI) 和计算语言学的一个子领域,专注于使计算机能够理解、解释和生成人类语言。它涉及计算机和自然语言之间的交互,允许机器以对人类有意义和有用的方式处理、分析…...

[足式机器人]Part3机构运动微分几何学分析与综合Ch03-1 空间约束曲线与约束曲面微分几何学——【读书笔记】

本文仅供学习使用 本文参考: 《机构运动微分几何学分析与综合》-王德伦、汪伟 《微分几何》吴大任 Ch01-4 平面运动微分几何学 3.1 空间曲线微分几何学概述3.1.1 矢量表示3.1.2 Frenet标架 连杆机构中的连杆与连架杆构成运动副,该运动副元素的特征点或特…...

pytest框架快速进阶篇-pytest前置和pytest后置,skipif跳过用例

一、Pytest的前置和后置方法 1.Pytest可以集成unittest实现前置和后置 importunittestimportpytestclassTestCase(unittest.TestCase):defsetUp(self)->None:print(unittest每个用例前置)deftearDown(self)->None:print(unittest每个用例后置)classmethoddefsetUpClass…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、👨‍🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨‍&#x1f…...

管理学院权限管理系统开发总结

文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

GitHub 趋势日报 (2025年06月06日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...