【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

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

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

相关文章

探索未来:元宇宙与Web3的无限可能

随着科技的奇迹般发展,互联网已经成为了我们生活的不可分割的一部分。然而,尽管它的便利性和普及性带来了巨大的影响,但我们仍然面临着传统互联网体验的诸多限制。 购物需要不断在实体店与电商平台间切换,教育依然受制于时间与地…

Mongodb (四十一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 1.1 相关概念 1.2 特性 二、应用场景 三、安装 四、目录结构 五、默认数据库 六、 数据库操作 6.1 库操作 6.2 文档操作 七、MongoDB数据库备份 7.1 备…

截止到目前全量主体总数有多少?

企业主体类型 企业主体类型有很多种,一般我们会分为公司(有限责任)、合伙企业、个人独资企业、个体经营户这些类别。 今天我们按照企业,个体,组织的分类方式来看各个主体的总数。 企业:统一社会信用代码…

“MongoDB基础知识【超详细】

"探索MongoDB的无边之境:沉浸式数据库之旅" 欢迎来到MongoDB的精彩世界!在这个博客中,我们将带您进入一个充满创新和无限潜力的数据库领域。无论您是开发者、数据工程师还是技术爱好者,MongoDB都将为您带来一场令人心动…

7.5.tensorRT高级(2)-RAII接口模式下的生产者消费者多batch实现

目录 前言1. RAII接口模式封装生产者消费者2. 问答环节总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-RAI…

仿东郊到家【8月份稳定版】同城到家/家政上门/美容/理疗/足疗/推拿/私教/瑜伽/健身

1、物料商城(商品分类、商品管理) 2、地图导览(平台总销售额、人员统计、营收数据、当前开放城市) 3、后台新增:技师统计(技师概况、技师数据统计、区域分布、技师数据等,可视化数据一目了然&am…

Compute shader SV 理解图

本图转子:【Computeshader】个人总结_蒋伟博的博客-CSDN博客

C语言快速回顾(二)

前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》,结合我自己的工作学习经历,我准备写一个音视频系列blog。C/C是音视频必…

手机出现 不读卡 / 无信号时应该怎么办?

当手机屏幕亮起,一般在屏幕最上方都会有代表手机卡状态的显示,其中网络信号和读卡状态的标识,依旧有很多人分不太清,更不清楚改怎么办了。 1、当我们的手机里有两张卡时,则会有两个信号显示 2、信号状态一般是由短到…

【MySQL--->表的操作】

文章目录 [TOC](文章目录) 一、创建表二、查看表三、修改表四、删除表drop table 表名; ![在这里插入图片描述](https://img-blog.csdnimg.cn/15227b8335364d41bd01b4b4dd83ee55.png) 一、创建表 语句格式:create table 表名(列名 类型,…)字符集 校验规则 存储引擎;字符集和校…

写给 Android 应用工程师的 Binder 原理剖析

一. 前言 这篇文章我酝酿了很久,参考了很多学习文档,读了很多源码,却依旧不敢下笔。生怕自己理解上还有偏差,对大家造成误解,贻笑大方。又怕自己理解不够透彻,无法用清晰直白的文字准确的表达出 Binder 的…

机器学习基础之《特征工程(4)—特征降维—案例》

一、探究用户对物品类别的喜好细分 1、找到用户和物品类别的关系 数据如下: (1)order_products__prior.csv:订单与商品信息 字段:order_id,product_id,add_to_cart_order,reordered…