【Git基本操作】创建本地仓库 | 配置本地仓库 | 认识工作区、暂存区、版本库、对象库 | add和commit操作

news2024/9/22 13:25:27

目录

1.创建Git本地仓库

1.1创建仓库

1.2创建和初始化Git本地仓库

1.3查看隐藏目录.git

2.配置本地仓库

2.1新增配置

2.2删除重置配置

2.3查看配置选项

2.4全局范围的新增和删除配置

3.工作区、暂存区、版本库、对象库

​4.add操作和commit操作

4.1add操作

4.2commit操作

4.3对象库


1.创建Git本地仓库

❓用git维护的文本文件和二进制文件,是可以存在服务器的任意位置吗?

当然不可以,这样git就不能进行追踪和管理了。

如果我们想要把git管理和追踪这些文件,我们必须把这些文件放到git仓库里面。

只有放到git仓库的文本文件和二进制文件才能被git管理和追踪。

1.1创建仓库

❗要提前说的是,仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来。 

 mkdir gitcode

1.2创建和初始化Git本地仓库

git init

1.3查看隐藏目录.git

我们发现,当前⽬录下多了⼀个 .git 的隐藏⽂件, .git ⽬录是 Git 来跟踪管理仓库的,不要⼿动
修改这个⽬录⾥⾯的⽂件,不然改乱了,就把 Git 仓库给破坏了。 

ll -a
tree .git

2.配置本地仓库

name 名称 和 email 地址 必须要配置。如果不配置,将来我们对本地仓库进行操作的时候,出现一系列的问题(报错)所以创建完本地仓库,马上配置它们。

使用 git config 命令就可以为我们本地仓库设置一些配置项了。

2.1新增配置

[root@tangsiqi gitcode]# git config user.name "tsq"
[root@tangsiqi gitcode]# git config user.email "2784139418@qq.com"

【注:前面的配置项是我们在创建本地仓库默认为我们自动配置的配置项】 

2.2删除重置配置

[root@tangsiqi gitcode]# git config --unset user.name
[root@tangsiqi gitcode]# git config --unset user.email

2.3查看配置选项

git config -l

2.4全局范围的新增和删除配置

一台服务器上不止可以创建一个本地仓库,一台服务器上可以创建多个本地仓库。

git config --global 加上--global表示我们配置的配置项是会在当前机器所有的git本地仓库都生效的。

[root@tangsiqi gitcode]# git config --global user.name "tsq"
[root@tangsiqi gitcode]# git config --global user.email "2784139418@qq.com"

[root@tangsiqi gitcode]# git config --global --unset user.email
[root@tangsiqi gitcode]# git config --global --unset user.name

3.工作区、暂存区、版本库、对象库

  • Git是一个版本控制系统。
  • 使用Git可以对我们电脑上所有格式的文件进行跟踪和管理。
  • 前提将被管理的文件放到git仓库里面维护。

现在我们尝试在gitcode下新建一个ReadMe文件,让Git来管理管理!

  • 目前这种情况下ReadMe文件在gitcode目录下能否被管理❓当然不可以。
  • Readme所在的gitcode不是本地仓库,真正的git仓库是隐藏的.git 才能被我们称为git仓库。又称版本库。Git版本控制系统,所有.git也叫版本库。
  • 那么我们ReadMe放到版本库.git下能被管路吗❓不可以且不被允许。
  • 不允许在.git中进行任何手动修改。一旦修改,可能导致整个本地仓库不能使用报废了。

  • 综上所述,只能将被管理的文件放到gitcode工作目录下。和.git同级目录下。所以git就把像gitcode这样的目录称为工作区。


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

下⾯这个图展⽰了⼯作区、暂存区和版本库之间的关系:

  • 图中左侧为⼯作区,右侧为版本库。Git 的版本库⾥存了很多东西,其中最重要的就是暂存区。

  •  在创建 Git 版本库时,Git 会为我们⾃动创建⼀个唯⼀的 master 分⽀,以及指向 master 的⼀个指针叫 HEAD。(分⽀和HEAD的概念后⾯再说)

  • 当对⼯作区修改(或新增)⽂件执⾏ git add 命令时,暂存区⽬录树⽂件索引会被更新。

  • 当执⾏提交操作 git commit 时,master 分⽀会做相应的更新,可以简单理解为暂存区的⽬录树才会被真正写到版本库中。


  • 工作区:Readme所在的gitcode目录就是git的工作区。注意❗.git虽然在工作目录下,但是不属于工作

  • 版本库:.git文件

  • stage/index  暂存区/索引  

  • head指针 指向了master分支(暂时不讲,后面会讲解)

综上所述:由上述描述我们便能得知:通过新建或粘贴进ReadMe⽬录(工作区)的⽂件,并不能称之为向仓库中新增⽂件,⽽只是在⼯作区新增了⽂件。必须要通过使⽤ git add 和 git commit 命令才能将⽂件添加到仓库中进⾏管理!!!

4.add操作和commit操作

4.1add操作

此步操作:将工作区中所有文件的修改内容 添加进版本库的暂存区中。

  • ❗❗三部分内容:工作区新增文件+修改已经存在的文件(增删改)+删除文件操作
  • 暂存区存放的是修改对象的索引(轻量级)
  • Add的时候,会在版本库的对象区新增一个git对象。
  • 注意:虽然.git的暂存区已经有工作区文件的修改内容了,但是不算将真正内容写入版本库。

4.2commit操作

此步操作就是将 暂存区的内容 提交到master分支下。此步完成之后,才能真正意义上说将修改的内容放到版本库中。

  • commit是将暂存区的树状结构 写到 master分支下,master分支下也是一个一个的树状结构(目录树),也是一个个对象的索引。(轻量级)。
  • 只要能拿到head,head是一个指针。就能拿到master这棵目录树。就可以拿到文件具体修改的内容。就可以管控文件了。
  • 完成以上两步,才能真正意义上来说用git来管理我们git仓库中的文件Readme文件。

4.3对象库

版本库中还存在一个模块,被版本库维护着——对象库 

  • 对象库:objects(里面存储着的git对象)
  • 在Add操作的时候,暂存区在新增工作区的修改内容的同时,也会创建和将修改内容写入git对象。
  • Git对象会被维护到git版本库中的对象库objects中。Git对象存储的是Add一次的修改工作区文件的内容。
  • 维护文件所有的版本 == 维护git版本库中对象库中所有的git对象中的内容(内容是工作区的Add的修改内容)
  • 暂存区存放的是修改对象的索引(轻量级)

  • master分支下也存放是对象的索引。

  • 修改的工作区的内容会写入对象库的一个新的git对象中。

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

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

相关文章

AI 大模型系统实战

AI 大模型是什么? 维基百科对基础模型的定义是这样的,基础模型是一种大型机器学习模型,通常在大量数据上进行大规模训练(通过自监督学习或半监督学习),以使它可以适应各类下游任务。因此,它需要…

从入门到精通:Shopee,lazada,temu自养号测评成本、步骤、技巧详解

测评对于卖家来说是一种成本低回报快的推广方式,可以减少高额的平台广告费用,因此是一种很好的辅助手段,对商品的曝光、流量、转化和权重等方面起到了很好的辅助作用 建议还是自己精养一批账号,账号在自己手里比较安全可控&#…

重塑消费体验:探索绿色消费增值模式的新篇章

我是吴军,就职于一家在数字创新领域屡获殊荣的软件企业,担任高级产品策略师。今天,我满怀热忱,想与您一同揭开一种前沿且极具吸引力的商业模式面纱——那就是绿色消费增值模式,一个正逐步改变我们消费习惯与商业生态的…

一.1 信息就是位+上下文

hello程序的生命周期是从一个源程序(或者说源文件)开始的,即程序员通过编辑器创建并保存的文本文件,文件名是hello.c。源程序实际上就是一个由0和1组成的位(又称为比特)序列,8个位被组织成一组&…

平面法向的角度表示以及坐标系变换

1.根据法线计算法线的垂直角sint和法线在水平投影与x轴的夹角phi double phi atan2(normal(1) , normal(0)); // atan2(y,x), 计算法向在xy平面上的投影和x轴之间的夹角double sint asin(normal(2)); //理论上是z轴和 该法向向量之间的夹角 2.根据角度计算法线 Eigen::Vec…

AnaPico为众多工厂产线老化测试提供高效经济的微波解决方案

在电子设备的生产中,老化测试在整个使用寿命期间的可靠性和对声明参数的保证起着重要作用,尤其是在特殊应用(国防和航天工业、电信、医药等)方面。即使经过成功的参数和功能测试,在实际操作条件下使用时也有可能出现设…

集芯微电推出固定输出2V|2.5V|3V|3.3V|4V|4.5V|5V_输入最大16V_10 ppm/°C低噪声低漂移高精度基准电压源

1特征 •低温漂移:3 ppm/C(典型) •高精度:最大0.1% •低噪声:7.5μVPP/V •低IQ:2 mA(典型) •工作温度范围:-40C至125C •高输出电流:10 mA •微型包…

《基于 Kafka + Flink + ES 实现危急值处理措施推荐和范围校准》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 近期刚转战 CSDN,会严格把控文章质量,绝不滥竽充数,欢迎多多交流。&am…

数字签密:信息安全的新防线

随着互联网的普及和数字技术的飞速发展,信息安全问题日益凸显。在这个背景下,数字签密技术应运而生,为保护信息安全提供了新的解决方案。本文将介绍数字签密的概念、原理及应用,探讨其在信息安全领域的重要性。 数字签密的概念 …

抖音微短剧小程序入驻指南

一、抖音微短剧小程序类目和准入要求是什么? 可以明确的告诉你抖音微短剧小程序入驻是需要报白的,属于定邀类目,官方准入要求如下: 类目要求:文娱-微短剧 定向准入,填写“【微短剧】类目定向邀约申请表”…

【深度学习练习】心脏病预测

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、什么是RNN RNN与传统神经网络最大的区别在于,每次都会将前一次的输出结果,带到下一隐藏层中一起训练。如下图所示: …

vue2 项目中 echarts 实现排班 效果

效果 代码 <template><div class"index"><div ref"scheduleChart" style"width: 100%; height: 600px"></div></div> </template><script> import * as echarts from "echarts";export de…

记一次微信小程序逆向

扫码领取网安教程 遇到瓶颈了&#xff0c;不知道该干什么&#xff0c;突然想到学校的小程序 闲来无事就看一看 抓包下来的数据是这样的&#xff0c;嗯&#xff0c;下机&#xff08;hhh 一、反编译程序 加密嘛&#xff0c;之前抓了看到是加密就放弃了&#xff0c;现在重新弄一…

下一代 RAG 技术来了!微软正式开源 GraphRAG

省流总结 优点&#xff1a;检索准确度高 缺点&#xff1a;单个19w字构建用时4分30s、gpt4 token花费12美元 概述 7 月 2 日&#xff0c;微软开源了 GraphRAG&#xff0c;一种基于图的检索增强生成 (RAG) 方法&#xff0c;可以对私有或以前未见过的数据集进行问答。在 GitHub…

新时代【机器学习】与【Pycharm】:【随机数据生成】与智能【股票市场分析】

目录 第一步&#xff1a;准备工作 1.1 安装必要的库 小李的理解&#xff1a; 1.2 导入库 小李的理解&#xff1a; 第二步&#xff1a;生成和准备数据 2.1 生成随机股票数据 小李的理解&#xff1a; 2.2 数据探索与可视化 小李的理解&#xff1a; 2.3 数据处理 小李…

Docker使用基础—环境搭建

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;秒針を噛む—ずっと真夜中でいいのに。 0:34━━━━━━️&#x1f49f;──────── 4:20 &#x1f504; ◀️ ⏸ …

力扣爆刷第161天之TOP100五连刷71-75(搜索二叉树、二维矩阵、路径总和)

力扣爆刷第161天之TOP100五连刷71-75&#xff08;搜索二叉树、二维矩阵、路径总和&#xff09; 文章目录 力扣爆刷第161天之TOP100五连刷71-75&#xff08;搜索二叉树、二维矩阵、路径总和&#xff09;一、98. 验证二叉搜索树二、394. 字符串解码三、34. 在排序数组中查找元素的…

姜镇主任科普:号称“大脑杀手”的脑胶质瘤是一种什么样的肿瘤?

面对诸如头痛、频繁呕吐、记忆力显著减退等“轻微症状”&#xff0c;许多人往往掉以轻心&#xff0c;将其归咎于日常压力或不良作息习惯所致&#xff0c;殊不知这样的忽视可能正是身体发出的警示信号&#xff0c;隐藏着脑胶质瘤这一严重疾病的潜在风险。这些看似不起眼的症状&a…

几个小创新模型,KAN组合网络(LSTM、GRU、Transformer)回归预测,python预测全家桶再更新!...

截止到本期&#xff0c;一共发了9篇关于机器学习预测全家桶Python代码的文章。参考往期文章如下&#xff1a; 1.终于来了&#xff01;python机器学习预测全家桶 2.机器学习预测全家桶-Python&#xff0c;一次性搞定多/单特征输入&#xff0c;多/单步预测&#xff01;最强模板&a…

Docker部署Django+MySQL+Redis+Nginx+uWSGI+Celery(超详细)

一、知识储备 经过我们之前学习的Docker相关知识&#xff0c;现在我们来进行实战&#xff0c;以下介绍如何通过Docker Compose部署Django项目&#xff1a; 先前知识: Docker学习笔记&#xff08;一&#xff09;概念理解-CSDN博客 Docker学习笔记&#xff08;二&#xff09;…