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

目录

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.mzph.cn/news/870570.shtml

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

相关文章

labelme 标注检查经验

1. python labelImg.py D:\BaiduNetdiskDownload\yoloDt_qiuyi_num\yoloDt_qiuye_num\train\images D:\BaiduNetdiskDownload\yoloDt_qiuyi_num\yoloDt_qiuye_num\train\labels\classes.txt 2. 目录另存为会找到classes.txt的类,然后标注起来。

idm站点抓取可以用来做什么 idm站点抓取能抓取本地网页吗 idm站点抓取怎么用 网络下载加速器

在下载工具众多且竞争激烈的市场中,Internet Download Manager(简称IDM)作为一款专业的下载加速软件,仍然能够赢得众多用户的青睐,这都要得益于它的强大的下载功能。我们在开始使用IDM的时候总是有很多疑问&#xff0c…

链接服务器“XX”的OLEDB访问接口“MSOLEDBSQL”返回了消息“登录超时已过期” 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 出现如下问题: 与链接服务器的测试连接失败。执行Transact-SQL 语句或批处理时发生了异常。命名管道提供程序:无法打开与SQL SERVER的链接[53]链接服务器“XX”的OLEDB访问接口“MSOLEDBSQL”返回了消息“登录超时已过期…

IntelliJ IDEA中刷新Git分支数据:操作指南与命令详解

前言 在软件开发过程中,频繁地与Git仓库交互是常态,确保本地分支信息与远程仓库保持同步至关重要。IntelliJ IDEA作为一款强大的集成开发环境,提供了直观的图形界面和终端命令行两种方式来帮助开发者高效地管理Git分支。本文将详细介绍如何在…

单词间隔重复算法

间隔重复算法 理论背景 遗忘曲线是一种描述记忆遗忘率的模型,艾宾浩斯在其著作《记忆:实验心理学的贡献》中首次详细描述了遗忘曲线,他使用了一些无意义的字母组合作为记忆对象,通过在不同的时间间隔后检查记忆的遗忘程度&#…

Android列表控件的属性与用法

列表控件的属性与用法 列表控件有Spinner、ListView、RecyclerView、ViewPager等。列表控件的显示一般涉及3个部分:控件、适配器、数据,这三者之间的关系如图1所示。适配器是数据与列表之间的桥梁,适配器中需要将数据中需要显示的属性与列表…

Python(四)---序列

文章目录 前言1.列表1.1.列表简介1.2.列表的创建1.2.1.基本方式[]1.2.2.list()方法1.2.3.range()创建整数列表1.2.4.推导式生成列表 1.3. 列表各种函数的使用1.3.1.增加元素1.3.2.删除元素1.3.3.元素的访问和计数1.3.4.切片1.3.5.列表的排序 1.4.二维列表 2.元组2.1.元组的简介…

智慧营区人员考勤管理系统|DW-S406系统实现无感考勤

智慧营区人员管理系统(DW-S406系统)通过建设人员基本信息管理功能,实现人力资源可视化、规范化管理,使人力资源管理工作决策的高效化、制度化得到有力保障,真正达到集中管理、集权管理的目标。主要实现营区人员管理、访…

对接高德开放平台API

高德开放平台API: https://lbs.amap.com/ 一、天气查询 天气查询: https://lbs.amap.com/api/webservice/guide/api/weatherinfo adcode城市码表下载: https://lbs.amap.com/api/webservice/download Component public class WeatherUtil {Resourceprivate GdCon…

【实践分享】深度学习远程连接GPU

目录 前言 一、创建实例 二、上传文件 三、服务器上传 四、运行代码文件 经验之谈 前言 1、使用平台:恒源云 2、教程总结自B站大佬Larry同学发布的教程视频 一、创建实例 通俗:租用一台临时的电脑,电脑可自选GPU型号等,…

MyBatis框架学习笔记(三):MyBatis重要文件详解:配置文件与映射文件

1 mybatis-config.xml-配置文件详解 1.1 说明 (1)mybatis 的核心配置文件(mybatis-config.xml),比如配置 jdbc 连接信息,注册 mapper 等等都是在这个文件中进行配置,我们需要对这个配置文件有详细的了解 (2&#x…

这些免费看电视的直播软件,还能免费追剧的app,需要的收藏!

想看中央台和地方卫视的电视直播app有什么呢?支持手机和智能电视的电视直播软件有哪些?今天要跟大家聊聊那些让人眼前一亮的电视直播软件,特别是2024年还能免费看电视直播的神器,让家里的老人也能享受到精彩的电视节目&#xff0c…

复杂度(上卷)

前言 在正式进入今天的主题之前,我们不妨先来回顾一下初步学习数据结构后必须知道的概念。🎶 数据结构 数据结构是计算机存储、组织数据的方式,指相互间存在一种或多种特定关系的数据元素的集合。 (没有一种单一的数据结构能够…

ServiceDesk Plus再次获得国际认可的粉象认证

我们又一次做到了!ServiceDesk Plus 现已获得 CMDB 和发布部署过程的 PinkVERIFY™ (粉象)认证。 通过PinkVerify 认证,我们现在已经获得了七项核心 IT 服务管理实践: 1、事件管理 2、问题管理 3、变更管理 4、资产管…

探索 Electron:窗口菜单以及生命周期和对话框讲解

Electron是一个开源的桌面应用程序开发框架,它允许开发者使用Web技术(如 HTML、CSS 和 JavaScript)构建跨平台的桌面应用程序,它的出现极大地简化了桌面应用程序的开发流程,让更多的开发者能够利用已有的 Web 开发技能…

Python类与对象01

1、理解使用对象完成数据组织的思路 1.1类和对象的基本理解 理解类:从现实世界到编程世界 类由三个部分组成:类名、类的属性、类的方法。类的定义实际上是描述事物的一种方法,在现实世界中,事物都是有属性和行为的。通过类&…

JVM:类加载器

文章目录 一、什么是类加载器二、类加载器的应用场景三、类加载器的分类1、分类2、启动类加载器 四、双亲委派机制五、打破双亲委派机制六、JDK9之后的类加载器 一、什么是类加载器 类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口…

休息时间c++

题目描述 小杨计划在某个时刻开始学习,并决定在学习k秒后开始休息。 小杨想知道自己开始休息的时刻是多少。 输入 前三行每行包含一个整数,分别表示小杨开始学习时刻的时h、分m、秒s(h,m,s的值符合1≤h≤12,0≤m≤59,0≤s≤59)…

Geoserver源码解读六 插件

系列文章目录 Geoserver源码解读一 环境搭建 Geoserver源码解读二 主入口 Geoserver源码解读三 GeoServerBasePage Geoserver源码解读四 REST服务 Geoserver源码解读五 Catalog Geoserver源码解读六 插件(怎么在开发模式下使用) 目录 系列文章目…

看番工具 -- oneAnime v1.2.5绿色版

软件简介 OneAnime是一款专为动漫爱好者设计的应用程序,它提供了一个庞大的动漫资源库,用户可以在这里找到各种类型的动漫,包括热门的、经典的、新番的等等。OneAnime的界面设计简洁明了,操作方便,用户可以轻松地搜索…