git安装及初步使用

git的安装 :

在CentOS 7.6环境下可以使用一条语句就能安装git

yum -y install git

如果上面命令包以下错误,说明权限不够

[leijie@fl ~]$ yum -y install git
Loaded plugins: fastestmirror
You need to be root to perform this command.

可以转换成root用户再次执行

或者对该用户添加sudo权限后在使用,

(16条消息) linux中创建用户并赋予用户sudo权限_赋予sudo权限_小逍遥1127的博客-CSDN博客

sudo yum -y install git

在这里插入图片描述

在安装之前也可以用

git --version

命令查看是否已经安装好git
在这里插入图片描述

卸载git命令

sudo yum remove git  -y

在windows下安装网站git安装网站

git的基本操作

创建git本地仓库

创建一个git目录

mkdir [目录名]

在这里插入图片描述

进入这个git目录 ,然后使用git init 对这个目录进行初始化

git init

在这里插入图片描述
当前⽬录下多了⼀个 .git 的隐藏⽂件, .git ⽬录是Git来跟踪管理仓库的,不要⼿动修改这个⽬录⾥⾯的⽂件,不然改乱了,就把Git仓库给破坏了

配置git

当安装Git后⾸先要做的事情是设置你的用户名称和e-mail地址 ,其中这个 --global选项是指我们对这个的配置会在当前机器下的所以的git仓库都生效

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

配置完后用

git config -l 

命令查看配置是否成功
在这里插入图片描述

如果想重置一个配置, 其中对于用--global配置的内容也要用--global进行重置

git config [--global] --unset [重置的属性名]  

在这里插入图片描述

⼯作区、暂存区、版本库

  • ⼯作区:是在电脑上你要写代码或⽂件的⽬录。
  • 暂存区:英⽂叫stageindex。⼀般存放在.git ⽬录下的index文件(.git/index)中,我们把暂存区有时也叫作索引(index)。
  • 版本库:⼜名仓库,英⽂名repository 。⼯作区有⼀个隐藏⽬录.git ,它不算⼯作区,⽽是Git的版本库。这个版本库⾥⾯的所有⽂件都可以被Git管理起来,每个⽂件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

  • 图中左侧为⼯作区,右侧为版本库。Git的版本库⾥存了很多东西,其中最重要的就是暂存区。
  • 在创建Git版本库时,Git会为我们⾃动创建⼀个唯⼀的master分⽀,以及指向master的⼀个指针叫HEAD。
  • 当对⼯作区修改(或新增)的⽂件执⾏ git add 命令时,暂存区⽬录树的⽂件索引会被更新。
  • 当执⾏提交操作 git commit 时,master分⽀会做相应的更新,可以简单理解为暂存区的⽬录树才会被真正写到版本库中

提交命令

将文件从工作区添加到暂存区,在add后就会多一个index,就是里面的暂存区

git add . 	   #将当前目录的所以文件都加入暂存区
git add [name] #指定文件加入暂存区
git add [name1] [name2] .. #一次性添加多个文件 

在这里插入图片描述

将暂存区内容添加到本地仓库

git commit -m "[描述]" 	#这个描述说这个操作是干什么

在这里插入图片描述

查看提交记录

git log #可以查看git的提交记录
git log --pretty=oneline
git log [file] #指定查看某一个文件的记录


在这里插入图片描述

查看git文件 :

.git中的HEAD是指向一个分支的,默认是master,修改的工作区内容会写入对象库的一个新的git对象中
在这里插入图片描述
在这里插入图片描述

git 修改文件

在git中只要是新增,修改,删除文件,都叫做 修改,所以知道了Git中追踪管理的其实是修改,而不是文件

git status #查看当前仓库状态  可以通过这个查看上次提交后到现在是否有文件被修改了

在这里插入图片描述

不过这个git status 只能查到那个文件被修改了,但是不知道修改的内容,要想知道,就需要用

git diff [file] #查看工作区与暂存区的差异

在这里插入图片描述
在这里插入图片描述

除了git diff

git diff HEAD -- [file]#用来查看工作区与版本库的差异

在这里插入图片描述

版本回退

Git能够管理⽂件的历史版本,这也是版本控制器重要的能⼒。如果有⼀天你发现之前前的⼯作做的出现了很⼤的问题,需要在某个特定的历史版本重新开始,这个时候,就需要版本回退的功能了

版本回退的命令是git reset ,该命令⽤于回退版本,可以指定退回某⼀次提交的版本。要解释⼀下“回退”本质是要将版本库中的内容进行回退,⼯作区或暂存区是否回退由命令参数决定

git reset [--soft | --mixed | --hard] [HEAD]--mixed 为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内容,⼯作区⽂件保持不变。--soft 参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本。--hard 参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要⽤这个命令,因为⼯作区会回滚,你没有提交的代码就再也找不回了,所以使⽤该参数前⼀定要慎重HEAD 说明:
◦ 可直接写成 commit id,表⽰指定退回的版本
◦ HEAD    表⽰当前版本
◦ HEAD^   上⼀个版本
◦ HEAD^^  上上⼀个版本
◦ 以此类推...
• 可以使⽤〜数字表⽰:
◦ HEAD~0 表⽰当前版本
◦ HEAD~1 上⼀个版本
◦ HEAD^2 上上⼀个版本
◦ 以此类推...

在这里插入图片描述

可以看到,对应现在一共有4个版本,那么我们对其使用git reset --hard将版本库,暂存区,工作区的都回退到第一个版本

git reset --hard HEAD^3 #写法一
git reset --hard [commit id]

在这里插入图片描述

通过commit id 回退到第一个版本后,就发现在提交第一次之后提交的test2,test3就没了,想恢复回退前的版本也可以使用commit id

在这里插入图片描述

不过我们回退后使用git log其实是看不到后面版本的commit id的,

在这里插入图片描述

想要在回退后查看到对应版本的commit id就需要使用git reflog

在这里插入图片描述

对于上面的第一列的 b4c2a30 , f61af46 ,7df5220其实是commit id的一部分,Git版本回退的时候,也可以使⽤部分 commit id 来代表⽬标版本

撤销修改

如果我们在工作区中的编写感觉不太行,不想用这个版本了,想重新从上个版本写,就需要恢复到上一个版本,这个就叫撤销修改,撤销的目的是为了不去影响远程仓库的代码(没有进行git push)

不过撤销修改有多个场景,

场景一:

我们修改后的内容只存在在工作区中,没有将修改后的存入暂存区和版本库,简单来说就是修改后没有进行Add和Commit操作

这个场景下,我们只需要撤销工作区的操作就行了

git checkout -- [file] #将工作区文件回到最近一次提交的状态,切记 -- 不能省略

在这里插入图片描述

场景二:

我们修改后的内容不止在工作区有,也存在到了暂存区中,但是版本库中没有,就是进行了Add操作,但是没有进行Commit操作

这个场景下,我们需要撤销工作区与暂存区的操作
在这里插入图片描述

这个想要回退就可以

方法一:先使用前面的git reset --mixed [HEAD]命令去回退暂存区的内容,再使用git checkout -- [file]去回退

工作区的内容

在这里插入图片描述

方法二:直接使用git reset --hard HEAD 将工作区和暂存区的全回退到当前版本
在这里插入图片描述

场景三:

我们修改后的内容在工作区,暂存区,版本库中都有,就是进行了add和commit操作了

这个场景下我们需要撤销工作区,暂存区和版本库的操作

只需要使用git reset --hard HEAD^ 命令就行了

在这里插入图片描述

删除版本库的文件

我们在git目录中的rm操作其实是只对工作区进行删除了,但是版本库中没有真的删除,就需要操作add和commit 才能对版本库的文件也删除

步骤:使用git rm [file]对工作区与暂存区的删除,在commit将这个删除操作提交到版本库进行删除
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于微服务治理的一些理解

关于微服务治理的一些理解 微服务架构存在的意义 根本意义 其主要目的还是为了解耦,提高灵活性和可扩展性! 参考:https://zhuanlan.zhihu.com/p/462078779 相比单体 单体架构的性能高于微服务架构,微服务的负载能力低于单体架构…

【uniapp开发小程序】实现点击跳转手机通话 拨打电话功能

效果图&#xff1a; 代码展示&#xff1a; <template><view class"page-map"><view class"btn" click"telFun()" style"text-align: center;">电话咨询</view></view> </template> <script&g…

设计模式--------结构型模式

结构型模式 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式&#xff0c;前者采用继承机制来组织接口和类&#xff0c;后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低&#xff0c;满足“合成复用原则”…

如何解决PostgreSQL执行语句长时间卡着不动,不报错也不执行的问题?

1 问题现象 执行SQL语句&#xff0c;卡着不动&#xff0c;不成功也不执行&#xff0c;就像挂住了一样。 truncate table simple; 2 原因分析 一般来说&#xff0c;语句呈现卡着的状态&#xff0c;主要会是两种原因比较多&#xff0c; 原因1&#xff1a;SQL语句是一个耗时操…

Yolov5-Lite + Sort算法实现边缘目标跟踪

文章目录 前言项目结构Sort算法实现卡尔曼跟踪器工具类多目标跟踪器 整合 前言 昨天挖了个坑&#xff0c;那么今天的话把坑填上&#xff0c;只要是实现Sort算法和Yolov5-Lite的一个整合。当然先前的话&#xff0c;我们在Yolov3–Tiny的时候&#xff0c;也做了一个&#xff0c;…

flutter 更新分支内容

有三个分支&#xff0c;主分支&#xff0c;A分支&#xff0c;B分支&#xff0c;别人在B分支开发了内容&#xff0c;我在A分支进行开发。别人在B分支提交了代码&#xff0c;让我去拉下来。这时候我就是需要切到B分支&#xff0c;拉代码下来&#xff0c;然后再回到A分支&#xff…

程序设计相关概念

计算机概念 计算机是根据指令操作数据的设备。具有功能性和可编程性的特点。 功能性&#xff1a;对数据的操作&#xff0c;表现为数据计算、输入输出处理和结果存储等。 可编程性&#xff1a;根据一系列指令自动地、可预测地、准确地完成操作者的意图。 计算机的发展 计算机…

Xcode 15 beta 3 (15A5195k) 发布下载 - Apple 平台 IDE

Xcode 15 beta 3 (15A5195k) 发布下载 - Apple 平台 IDE (visonOS 1 beta 已发布) 7 月 5 日&#xff08;北京时间今日凌晨&#xff09;已发布。 IDE for iOS/iPadOS/macOS/watchOS/tvOS/visonOS 请访问原文链接&#xff1a;https://sysin.org/blog/apple-xcode-15/&#xf…

VSCode使用Remote SSH远程连接Linux服务器【远程开发】

文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 转载自cpolar极点云…

(02)Cartographer源码无死角解析-(78) ROS数据发布→子图内、子图间、约束与残差发布

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/127350885 文…

本地部署 ChatGLM2-6B

本地部署 ChatGLM2-6B 1. 什么是 ChatGLM2-6B2. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 安装 ChatGLM2-6B6. 启动 ChatGLM2-6B7. 访问 ChatGLM2-6B8. API部署9. OpenAI 格式的流式 API 部署10. 命令行部署11. ChatGLM2-6B 的推理参数含义 1. 什么是 ChatGLM2-6B Cha…

时间序列预测 | Matlab基于自回归移动平均模型(ARMA模型)时间序列预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列预测 | Matlab基于自回归移动平均模型(ARMA模型)时间序列预测,单列数据输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环境变量 w…