git工作区暂存区与版本库基本理解及提交流程全解

 更新时间:2022年04月28日 17:22:33   作者:admin  
这篇文章主要为大家介绍了git工作区暂存区与版本库基本理解及提交流程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

一、git的三个区的基本理解

1、工作区

上节课我们已经从github上clone了工程到本地,这个git-demo1的文件夹内部,就是我们的工作区,编写代码就在这个目录下进行,比如:

更加直观一点,工作区就是指我们项目的根目录,用VS Code工具打开

2、版本库

在工作区(项目根目录)中有一个隐藏的.git目录,这个目录就是版本库

具体结构如下图:

3、暂存区

版本库中包含了暂存区和版本信息。

暂存区从字面上去理解就是用来暂时保存项目的地方,实际上它的作用和它的名字是一致的,暂存区可以起到过渡的作用,当我们写代码修改了一些文件的时候,可以把修改的代码提交到暂存区保存,然后接着写代码,接着再提交到暂存区保存,写完某些代码觉得没什么可以修改的时候,可以将暂存区里面的文件一次性提交到版本库

具体结构如下图:

二、工作区中.git目录

从上面介绍的一点可以看出,.git目录是很重要的,这里目录中其实还包含了很多文件和文件夹,如下:

每个文件和文件夹都有具体的作用:

1.hooks文件夹,这个文件夹下存放一些shell脚本,可以设置一些特定的git命令

后触发相应的脚本,在搭建一些git托管系统的时候会用到

2.info文件夹,这里包含了一些git仓库信息

3.logs文件夹,保存所有更改的引用记录,继续打开logs文件夹,有refs文件夹和HEAD文件

4.objects文件夹,该目录存放所有的git对象

5.refs/heads文件夹,存储本地所有分支文件

6.refs/tags文件夹,当给当前分支打上标签时,就会在tags文件夹下,生成对应文件

7.config文件,这个是git仓库的配置文件

8.description文件,仓库的描述信息

9.HEAD文件里面只存储了当前分支的关联

10.index文件,这个文件就是我们前面提到的暂存区(stage),是一个二进制文件

三、通过提交流程理解三个区

1、工作区新加文件 index.html

这样,三个区的情况是下面这个样子

可以使用git status命令,查看当前文件状态

git status

2、将index.html提交到暂存区

工作区提交到暂存区

单个文件提交 命令格式: git add 文件名 

所有文件提交 命令格式: git add 

git add index.html

其实在VS Code工具中,也可以看到明显的变化

仅在工作区时:

提交到暂存区时:

大概的效果如下:

3、将暂存区内的内容提交到版本库

命令格式: git commit -m 注释

git commit -m '这是第一次提交测试'

效果如下:

可以使用 git log 命令来查看版本库中已经存在的版本

git log

4、将本地版本推送到github上

命令格式:git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

注意,执行commit提交到版本库之后,暂存区的文件就会消失了,再次执行git status可以看到效果

可以到github上查看当前的项目版本是否提交

效果如下:

以上就是git工作区暂存区与版本库基本理解及提交流程的详细内容,更多关于git工作区暂存区版本库提交流程的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Hadoop 运行环境搭建过程

    详解Hadoop 运行环境搭建过程

    这篇文章主要介绍了Hadoop 运行环境搭建过程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • 详细JSON解析教程

    详细JSON解析教程

    JSON即JS对象简谱 , 是一种轻量级的数据交换格式,Java官方没有提供JSON解析相应的API,本文提供两个最常用的JSON解析方法,分别是Google的Gson,阿里的FastJson,使用JSON解析之前要先获取相应的jar包,感兴趣的朋友一起看看吧
    2023-08-08
  • 学习哪门编程语言最有前途,最好赚钱,需求量高

    学习哪门编程语言最有前途,最好赚钱,需求量高

    近期有很多同学想学习编程,不知道选择哪种语言比较好,这里简单的给大家介绍一下,其实看个人发展,无论选择哪个只要努力都是赚钱的
    2017-08-08
  • typescript 实现RabbitMQ死信队列和延迟队列(订单10分钟未付归还库存)的过程

    typescript 实现RabbitMQ死信队列和延迟队列(订单10分钟未付归还库存)的过程

    RabbitMQ作为一款流行的消息队列服务,提供了死信队列(Dead Letter Exchange)功能,能够有效地处理消息被拒绝、消息过期以及队列达到最大长度等情况,本文将介绍如何利用RabbitMQ的死信队列来处理这三种情况,并提供了TypeScript示例代码,需要的朋友可以参考下
    2024-03-03
  • HTTP头信息总结

    HTTP头信息总结

    这篇文章主要介绍了HTTP头信息总结,HTTP的头域包括通用头、请求头、响应头和实体头四个部分,本文罗列了40个HTTP头信息,需要的朋友可以参考下
    2014-07-07
  • 分享Win10 1903过TP的双机调试问题

    分享Win10 1903过TP的双机调试问题

    本文给大家分享的是Win10 1903过TP的双机调试问题,通过实例代码截图的形式给大家展示的非常详细,需要的朋友参考下
    2019-11-11
  • matlab读取串口数据并显示曲线的实现示例

    matlab读取串口数据并显示曲线的实现示例

    这篇文章主要介绍了matlab读取串口数据并显示曲线的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • cnpm不是内部命令的解决方案:配置环境变量【推荐】

    cnpm不是内部命令的解决方案:配置环境变量【推荐】

    这篇文章主要介绍了cnpm不是内部命令的解决方案:配置环境变量的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • BurpSuite超详细安装和基础使用教程(已破解)

    BurpSuite超详细安装和基础使用教程(已破解)

    Burp Suite 是用于攻击web 应用程序的集成平台包含了许多Burp工具,它主要用来做安全性渗透测试,可以实现拦截请求、Burp Spider爬虫、漏洞扫描(付费)等类似Fiddler和Postman但比其更强大的功能,今天给大家介绍下BurpSuite安装破解使用教程,感兴趣的朋友一起看看吧
    2022-10-10
  • 总结一些你可能不知道的ip地址

    总结一些你可能不知道的ip地址

    IP对大家来说应该再熟悉不过了,但其实IP地址有一些不为人知的事情,可能你并不知道。例如短IP、不同进制的ip等,所以下面这篇文章主要给大家总结介绍了一些你可能不知道的ip地址知识,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07

最新评论