Git详解之本地仓库

article/2025/6/21 17:04:14

文章目录

  • 附加:Git指令大全
  • 1.创建版本库
    • 1.1.文本的编辑和提交
  • 2.时光机穿梭
    • 2.1.版本回退
    • 2.2.工作区和暂存区
    • 2.3.修改
      • 2.3.1.管理修改
      • 2.3.2.撤销修改
      • 2.3.3.删除文件

在上一篇博客中已经要求大家到官网去下载Git,当你看这篇博文的时候你要打开Git Bash 。
在这里插入图片描述
你的界面要处于这种状态,接下来,我将手把手教你学Git。

附加:Git指令大全

在这里插入图片描述

1.创建版本库

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录。上图的红色箭头指向的路径就是我们打开Git Bash时所在的文件根目录。我们一般默认都在该目录下创建版本库。创建版本库之前,我们先来看看这个目录下的文件信息。
在这里插入图片描述
这个时候该目录下并没有版本库,接下来我们创建一个版本库。

在这里插入图片描述

第一个指令 mkidr 是创建一个文件夹
第二个指令 cd 切换到git文件夹中
第三个指令pwd显示当前所在的文件的路径
这个时候我们再去看看目录,看看有什么变化。
在这里插入图片描述
这个时候多了一个文件,文件名叫git。我们进去看看。
在这里插入图片描述
里面什么都没有,当然了,我们只是新建了一个文件夹,我们还没建版本库呢,别着急,这就开始。
在这里插入图片描述
输入git init指令,这个时候就建了一个Git的版本库了,这个版本库是隐藏的,所以我们会发现git目录中有一个隐藏的文件夹。
在这里插入图片描述
没错,这个 .git 文件就是我们要创建的版本库。你看是不是很简单呢!

1.1.文本的编辑和提交

版本库建好了以后,我们就得开始编辑文本了。文本的编辑是在工作区进行的。我们的任务就是新建一个china.txt 。文件内容是:中国,我爱您。
在这里插入图片描述
在这里插入图片描述
当我们已经输入完成后,我们要保存并且要退回上一级。
我们要先按 esc ,然后在按两下 zz 就可以达到我们的目的了。
这个时候我们可以看看我们刚才写的文件的内容 用 cat 指令。
在这里插入图片描述
这个时候我们不妨看看此时git的状态 用 git status 指令。
在这里插入图片描述
英文单词的意思自己去搜,提示词告诉你这个时候你得使用git add < file >指令,目的是将工作区的文件加载到暂存区中,我们先试试。
在这里插入图片描述
当我们添加完后出现了一个警告,这个你先放一边,等下我们再来看。
这个时候,我们在看看此时git的状态。
在这里插入图片描述
此时git的状态是已经被加载到暂存区了,接下来就是提交文件了,用
git commit -m “declaration” 指令。
在这里插入图片描述
出现了上述情况,这个时候你得要自报家门了,你得要告诉Git你是谁。
然后就执行上图的那两个指令。执行完那两个指令后,你再次提交一次。
这个时候就成功了。
这个时候你再查看下此时git的状态。
在这里插入图片描述
如果出现了上述情形,那么恭喜你,你已经成功编辑并且提交了一个文本,
诶,好像我们忘记了一个警告信息还没有解决,我们将工作区的文本加载到暂存区的时候不是有个警告吗,好了,现在我们来解决它。我们输入以下指令就可以了。
git config --global core.autocrlf false 关闭自动转换
现在,你就可以正常地进行文本的编辑和提交了
接下来,我们总结一下
在这里插入图片描述

2.时光机穿梭

我们已经成功地添加并提交了一个china.txt文件,现在,是时候继续工作了,于是,我们继续修改china.txt文件,改成如下内容:中国,我爱你
在这里插入图片描述
现在我们再用 git status指令看看此时git的状态。
在这里插入图片描述
git status命令可以让我们时刻掌握仓库当前的状态,上面的命令输出告诉我们,china.txt被修改过了,但还没有准备提交的修改。

虽然Git告诉我们china.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如我说我想看看我昨天到底改了什么地方,这个时候你可以用 git diff 指令去查看工作区与暂存区的区别。这个时候有些人可能要问了,为什么是查看工作区和暂存区的区别能看出我修改了什么地方?因为你在上一次提交的时候你是先将工作区的内容添加到暂存区的,然后再提交,那就说明暂存区里面的内容就是和上一个版本的内容是一样的。而你在工作区的修改都是基于上一次的版本上进行的。 好了,我们开始使用 git diff
指令吧!
在这里插入图片描述
结果就是上图所示。
我们现在看到了修改的地方了,心里踏实了,可以放心提交了。在提交之前,记得先添加到暂存区,再提交。
总结一下:
在这里插入图片描述

2.1.版本回退

像这样,你不断对文件进行修改,然后不断提交修改到版本库里,就好比玩RPG游戏时,每通过一关就会自动把游戏状态存盘,如果某一关没过去,你还可以选择读取前一关的状态。有些时候,在打Boss之前,你会手动存盘,以便万一打Boss失败了,可以从最近的地方重新开始。Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。
那这个时候你就会问 ,我怎么知道我提交了多少次啊,没关系,有一个指令是可以提供提交日志的。 git log指令 试一试看看。
在这里插入图片描述
我们从这个日志上可以得到的信息有
1.我们提交的版本库的版本号
2.提交的日期
3.提交的作者的名字和邮箱(这里的我为了保护隐私,并没有写我的真实姓名和邮箱)
由于我每次在提交的时候那个declaration 都写的是s,因为这只是用来讲解
,方便而已,如果以后你在实际的应用开发中,你要写好每个版本的提示信息,这样有助于你找回到以前的版本。每提交一个新版本,实际上Git就会把它们自动串成一条时间线。如果使用可视化工具查看Git历史,就可以更清楚地看到提交历史的时间线。
既然可以版本回退,不如试一试?不知道你还记不记得我们上一个版本的内容是什么,如果不记得你可以回过头去看看。现在我们先来看此时文件中的内容是什么。
在这里插入图片描述
好,我们现在已经看到了最新版本的内容了,现在我们乘坐时光机会到上一个版本。秘诀就是 git reset --hard HEAD^ 指令。
在这里插入图片描述

现在我们再来看看china.txt文本文件里的内容是什么?
在这里插入图片描述
是不是变了。真是太神奇了。
现在我们在看看日志吧。
在这里插入图片描述
我们确实回到上一个版本了,但你有没有发现,最新的版本它不见了。就好比你坐时光机回到了19世纪,但是你回不去了,我只是想回到过去看看,重新体验一下过去的美好,但是我发现好像回不去了,别担心,Linus早就想到了。 试一试 git reflog指令吧。
在这里插入图片描述
仔细的你是不是发现了最新版本的版本号了,有了版本号,你自然就可以回到那个版本。
在这里插入图片描述
现在我们已经到最新的版本了,不信?我们看看文本文件的内容。
看看,是不是又回来了。
这里要给大家解释一下。Git的版本回退速度以及版本跳转速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退或跳转版本的时候,Git仅仅是把HEAD从指向版本。然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号,你就把当前版本定位在哪。又因为暂存区的内容总是和版本挂钩的,而每次跳转到新的版本后,暂存区的内容自然也会更新,所以此时你用diff指令是没有差别提示的(工作区的内容和暂存区的内容和改版本库的内容是一模一样的)。
在这里插入图片描述
总结一下:
在这里插入图片描述

2.2.工作区和暂存区

工作区和暂存区是什么在上文中已经讲了,但是,我们在此再强调一遍,不要出现概念模糊不清的状态。
什么是工作区,就是你在电脑上能够直接看到的目录。看图
在这里插入图片描述
红色箭头所指向的文件就是工作区,千万不要搞混淆了,等到了后面,总 会有人会弄错的,所以我们在这强调一下。
那什么是暂存区又在哪呢?
暂存区在版本库里面 如图
在这里插入图片描述
index 或者是 stage 文件就是暂存区。
还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
我们再回顾一下 git addgit commit 指令。
git add 的作用就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。
请大家要注意,Git它是记录版本与版本之间的不同,而不是记录版本的内容。
我们再来看看,你们觉得每一次提交之后,暂存区的内容会为空吗?还是说暂存区的内容先复制一份再提交上去?我们来讨论一下。
在这里插入图片描述
**一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:**首先此时我们的工作区已经是干净的了,现在我们看看文件index里的内容是不是空的。
在这里插入图片描述
显然,它不是空的,由于编码方式的不同,我们看不懂,但没关系,我们通过这个现象可以看出来index提交了之后还是存有内容的。那我们还有没有其他的方式来证明呢,也有。不知道你们还记不记得 git diff 这个指令,这个指令就是用来查看工作区和暂存区的不同之处的。
在这里插入图片描述
现在暂存区的内容和工作区的内容是没有区别的,我们来个假说演绎 法。如果此时我们对工作区进行修改之后,再查看两者之间的不同,如果有区别,则证明暂存区提交后依旧存储内容,如果没有区别,则暂存区为空。
在这里插入图片描述
结果再次证明,但暂存区的内容提交的时候,暂存区的内容不会为空

2.3.修改

现在,假定你已经完全掌握了暂存区的概念。下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。

2.3.1.管理修改

你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。
我们要知道所有的修改都是基于最新版本的,所有文件都修改了之后要添加到暂存区中,而不是一个一个提交,效率很低,可以一次性全部提交。
现在,你又理解了Git是如何跟踪修改的,每次修改,如果不用git add到暂存区,那就不会加入到commit中。

2.3.2.撤销修改

自然,你是不会犯错的。不过现在是凌晨两点,你正在赶一份工作报告,你在china.txt中添加了一行:
在这里插入图片描述
在你准备提交前,一杯咖啡起了作用,你猛然发现了stupid boss可能会让你丢掉这个月的奖金!

既然错误发现得很及时,就可以很容易地纠正它。你可以删掉最后一行,手动把文件恢复到上一个版本的状态。如果用git status查看一下:
在这里插入图片描述
git告诉我们此时文件还没有被添加到暂存区,只是在工作区进行了修改。
那很简单,git已经告诉你了如何操作。
1.使用 git restore < file >。(回到版本库的状态)
2.进入文件进行修改。(局部)
这两种方式要根据你的错误量来决定的
如果你只在某处有错误,选择第二种方式。
如果你增加的地方几乎都有问题,那你就选择第一种方式。
如果是china.txt已经添加到暂存区后,又作了修改。

在这里插入图片描述
这个时候git已经告诉你该怎么做了。总之,你在日常的操作的过程当中,一定要经常性地查看此时git的状态,然后根据git的提示词执行相应的操作。
现在,假设你不但改错了东西,还从暂存区提交到了版本库,怎么办呢?还记得版本回退一节吗?可以回退到上一个版本。
在这里插入图片描述
然后在这个版本下进行修改,就会完美地跳过那个不愉快的版本了。
在这里插入图片描述
这个红色箭头所指向的版本库的版本号就是过去式了。现在,你就可以长舒一口气了。毕竟你还没有把自己的本地版本库推送到远程。还记得Git是分布式版本控制系统吗?我们后面会讲到远程版本库,一旦你把stupid boss提交推送到远程版本库,你就真的惨了……

2.3.3.删除文件

删除文件在我们的日常开发过程当中是必不可少的。一般有两种方式。
1.一般情况下,你通常直接在文件管理器中把没用的文件删了。
2.用rm命令删了。
在这里插入图片描述
git给我们的提示是china.txt已经被删掉了。
现在你有两种方式解决问题。
1.你是不小心删掉的,使用git提示的指令把它给复原。
2.确实你是要想删掉这个文件,也是根据提示来。
在这里插入图片描述
现在执行完这个指令之后,你就把版本库里的文件也给删了。
现在再看看git的状态。
在这里插入图片描述
根据提示,你在提交就可以了。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/geTN78LT.shtml

相关文章

Git上传本地仓库到Github

如何上传本地已经创建好的项目到Github或Gitee呢。本文将简短的为您提供帮助。都是一步一步截图叙述。带截图的都是针对小白一步步引导。懂一点点点的&#xff0c;直接跳到文章结尾看命令。 首先需要在远端创建一个仓库&#xff0c;登录github右上角点击加号新建项目&#xff1…

Git初始化本地仓库

【1】创建一个文件夹&#xff1a;GitResp&#xff1a; 【2】打开Git终端&#xff1a; Git Bash Here: 进入以后先对字体和编码进行设置&#xff1a; 在Git中命令跟Linux是一样的&#xff1a; &#xff08;1&#xff09;查看git安装版本&#xff1a; &#xff08;2&#xf…

4.git本地仓库操作(操作命令)

一、工作流程 Git本地操作的三个区域&#xff1a; 工作流程&#xff1a; 二、本地仓库操作 什么是仓库呢&#xff1f;仓库又名版本库&#xff0c;英文名repository&#xff0c;我们可以简单理解成是一个目录&#xff0c;用于存放代码的&#xff0c;这个目录里面的所有文件都可…

git本地仓库绑定远程仓库

1、在要新建本地仓库地址的位置打开git bash&#xff0c;并利用命令git init初始化仓库&#xff1b; 2、利用命令ssh-keygen -t ed25519 -C "your_emailexample.com"生成ssh密钥&#xff08;这一步并不是必须的&#xff0c;但是如果不这么做的话每次提交都需要输入账…

Git本地仓库与远程仓库链接

前一段时间因为课程需要&#xff0c;所以学习了git的初步使用&#xff0c;说说我踩的雷&#xff0c;和浅谈一下使用方法把 首先要确保你的电脑上装了git&#xff0c;注册一个github账号&#xff0c;这就不说了 首先创建一个文件夹来当做你远程仓库在本地的映射 1.在文件夹空…

Git本地仓库内部基本结构

Git本地仓库&#xff08;本文不涉及远程仓库&#xff09;的内部结构简单如下图&#xff1a; 这是一个appengine项目&#xff0c;刚从远程仓库中clone出来。这个目录下&#xff0c;除了.git目录外的都算作工作区。.git目录下有很多东西&#xff0c;这里只挑简单的描述。 1.obje…

在IDEA中配置git本地仓库并提交远程仓库

首先需要先安装好git 1.下载并安装Git客户端→Git官网下载地址 2.需要有远程仓库账号&#xff08;gitee或者GitHub都可以&#xff09;。 先在IDEA中配置git file -> settings -> version control-> git (下边地址填写 git安装的路径中的git.exe的位置) 如果git安装…

如何搭建一个git本地仓库

第一步&#xff0c;右键 第二步&#xff0c;配置邮箱&#xff0c;和git用户名&#xff0c;这个用户名是本地的。可以随意起一个名字 实际上&#xff0c;我们配置的邮箱和用户名&#xff0c;会被记录到本地c盘目录下的一个叫.gitconfig的文件下 我们也可以通过git命令来查看配置…

三、建立Git本地仓库

首先&#xff0c;创建本地仓库文件夹 比如&#xff0c;在D:下新建文件夹&#xff0c;命名为user_project 。 初始化本地仓库 在D:\user_project下运行cmd&#xff0c;如下图 或者右键打开Git Bash 输入初始化仓库的代码&#xff0c;如下 $ git init “该命令将创建一个名为…

Git本地仓库使用

说明&#xff1a;Git是版本控制和协同开发的工具 下载Git 第一步&#xff1a;下载 在官网&#xff08;https://git-scm.com/download/win&#xff09;&#xff0c;选择自己的版本自行下载 第二步&#xff1a;安装 下载下来后&#xff0c;使用默认设置&#xff0c;不要改动任…

Git本地仓库的初始化和配置

系列文章目录 &#xff08;一&#xff09;Git本地仓库的初始化和配置 &#xff08;二&#xff09;Git文件代码提交详解 &#xff08;三&#xff09;Git分支与标签 &#xff08;四&#xff09;Git历史版本的回溯、修改及回滚 &#xff08;五&#xff09;Git远端同步 文章目录 系…

Git系列(四)、在IDEA操作Git本地仓库与连接远程Git仓库(推送、合并、拉取、克隆操作)

在IDEA操作Git本地仓库与连接远程Git仓库 1、首先设置idea中绑定本地Git的可执行路径2、随便建个项目&#xff0c;将项目初始化为Git管理的本地仓库3、按命令操作顺序将项目添加并提交到本地仓库中4、修该项目文件&#xff0c;并与历史版本对比5、版本回退6、新建分支7、新建远…

2022新版Git教程 从入门到实战(二)Git本地仓库的使用

&#x1f41f; 个人主页 &#xff1a;https://blog.csdn.net/qq_52007481⭐个人社区&#xff1a;【小鱼干爱编程】&#x1f4f0;最近专栏&#xff1a;Git教程专栏 文章目录 1.Git的本地工作流程2.创建版本库2.1本地仓库2.2 初始化本地仓库2.3 查看本地库状态2.4 将文件添加到暂…

Git本地仓库的搭建及使用

前言 1.什么是git&#xff1f; 开源的最先进的分布式版本控制系统&#xff0c;没有之一用以高效、高速的处理从很小到非常大的项目版本管理。 2.什么是版本控制系统&#xff1f; 版本控制是一种记录一个或若干文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统 …

git 本地仓库存储位置 / github 本地仓库存储位置 / gitee 本地仓库存储位置

通过在菜鸟教程上学习&#xff0c;了解到 git 关于工作区、缓存区、版本库、本地仓库、远程仓库等概念&#xff0c;即&#xff1a; 工作区&#xff1a;指本地仓库中&#xff0c;除了 .git 目录以外的所有文件和目录&#xff1b;缓存区&#xff1a;.git 目录下的 index 文件&am…

Git 本地仓库(Repository)详解

大纲&#xff1a; 一、前言 二、概述 三、在Windows上安装Git 四、创建本地仓库 五、本地仓库管理详解 六、总结 注&#xff0c;测试机 CentOS 5.5 x86_64&#xff0c;Git 服务器版本&#xff1a;git version 1.8.2.1&#xff0c;客户端版本&#xff1a;git version 1.9.2.msys…

Git的基本使用(本地仓库)

一、安装Git 可以使用以下地址下载Git&#xff0c;然后默认选项安装即可 Git for Windowshttps://git-for-windows.github.io 安装完成后&#xff0c;在开始菜单找到“Git”->"GIt BAsh" ,说明安装成功 下载完成后&#xff0c;打开进行安装&#xff08;按照下图…

Python及第三方库pillow\numpy等的安装教程

1、python安装&#xff1a;https://www.cnblogs.com/lvtaohome/p/11121377.html 2、安装第三方库&#xff1a; python成功安装之后&#xff1a; 方法一&#xff1a;管理员下运行windos命令&#xff0c;然后输入pip install 要安装的第三方库名 也有可能会下载到一半出错&am…

numpy简单快速安装教程

numpy安装教程 默认python版本较新版本&#xff08;有pip功能&#xff09; step1&#xff1a; numpy下载地址 step2&#xff1a; 我将下载好的numpy放到了D:\python\Scripts中 然后cmd打开 输入 python -m pip install numpy 如图&#xff1a; 安装后有个Warning需要你进行…

NumPy window 安装教程 多图 简单易懂

前言: NumPy(Numerical Python) 是 Python 语言的一个扩展程序库&#xff0c;支持大量的维度数组与矩阵运算&#xff0c;此外也针对数组运算提供大量的数学函数库。 NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发&#xff0c;2005 年&#xff0c;Travis O…