【Git基本操作】添加文件 | 修改文件 | 及其各场景下.git目录树的变化

目录

1. 添加文件&add操作和commit操作

2. .git树状目录的变化

3. git其他操作 

4. 修改文件

4.1 git status 

4.2 git diff


1. 添加文件&add操作和commit操作

  • add操作:将工作区中所有文件的修改内容 添加进版本库的暂存区中。
  • commit操作:将暂存区的内容 提交到master分支下。此步完成之后,才能真正意义上说将修改的内容放到版本库中(本地仓库)。
  • add对应命令:git add命令
  • commit对应命令:git commit命令

add操作

  • 写法1:git add 文件的名称(当然后面也可以跟上多个文件)
  • 写法2:git add . (当前目录下所有内容的修改全部添加到暂存区)

commit操作

  • git commit -m " " (引号里是本次提交的细节,尽量详细的描述,请描述直接语言,不可修改的)(git 版本控制器 管理文件的版本 就是依据版本提交的细节)
  • 回车之后,就可以看到你提交成功的信息。
  • 第一行是提交的细节或备注。
  • 第二行是有几个文件改变,改变的内容是什么。(此例子是有4个文件改变,改变的内容是1行)
git add
git commitgit add ReadMe//文件名,后面可以跟多个文件名
git add . //当前目录下所有文件修改的内容全部添加到暂存区git commit -m " "

 

2. .git树状目录的变化

  • add操作之后,index暂存区新增内容的git对象的索引。
  • add操作同时在对象区创建了git对象,内容在这里面。
  • head指针指向master
  • commit操作之后,master新增了对象库中对象的索引。
  • master里面存放的就是最新一次提交commit id
  • commit id分为两个部分:
  1. 前两位是文件夹的名称
  2. 剩下是后面是标识
  • mastet——>最新一次提交记录的commit id——>保存的最近一次提交记录(里面有提交文件修改内容的commit id)——>保存的是提交文件(每个提交的文件都有单独的commit id)——> commit id保存的是修改的内容。

【head指针指向master】cat .git/HEAD

【未操作前】 

【操作之后】 


cat .git/refs/heads/master 
//master的内容,里面存放的是最新一次提交的commit id

git cat-file -p  跟commit id //查看maseter索引commit id的内容

【只提交了一次所以只有一次提交记录】 

【tree后面也是一个对象,对象里面存放的是最新一次提交的commit id】

【此例子我们提交了两次,所以有parent: 上次提交内容parent的commit id】

git cat-file -p 0de78ceec6ac9cf0502e67fc7d7dced363a7ada5//commit id是提交记录中tree后面对象的索引

git cat-file -p ce09bf3ad4f74a39462ae54d7a75272977303c05 //查改对应文件commit id中保存的修改的内容

 

3. git其他操作 

git log 

  • git log :可以帮助我们打印时间从近到远的提交记录。
  • 每次提交都会有一个commit id(通过哈希计算出来的一个数字,不是递增的数字。十六进制表示。)

  • 这个id可以定位到我们每次的提交的文件内容。定位到是谁提交和提交时间以及提交的详细信息。

  • 下面例子:清晰的知道commit id和配置的姓名和邮箱。

 git log --pretty=oneline

  • git log --pretty=oneline:简化上面的内容(打印一行漂亮的日志)

4. 修改文件

前提:对工作区的文件的修改包括以下几个方面:

  1. 新增一个文件
  2. 删除一个文件
  3. 修改一个文件内容(增删改)

重点❗:Git版本控制器并不是追踪管理文件本身,而是文件的修改。对象库中的一个git对象,里面存储其实是工作区修改的内容。Git管理的是修改的内容而不是一整个的文件。

注意❗:每次修改工作区的文件之后,提交之后,需要用git的指令查看本地仓库的状态和修改的具体内容。

4.1 git status 

查看当前仓库的状态:git status

  • 用于查看上一次提交 截至到现在 是否对哪些文件做出修改,注意只是哪些文件变化了/修改了,不能查看修改的内容。
  • Changes not staged for commit 没有将要提交的文件修改内容 到暂存区内容(工作区存在修改过的文件 没有提交到暂存区中了)
  • 修改的是在工作区:modified:ReadMe修改的内容在。

【add未提交到暂存区前】 

【add提交到暂存区】  【commit 未提交到本地仓库前】 

【commit提交到本地仓库】

4.2 git diff

显示暂存区和工作区之间差异的文件内容的git diff   需要查看某个修改文件的具体内容的文件名。(显示的是diff格式)

 

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

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

相关文章

《mysql篇》--索引事务

索引 索引的介绍 索引是帮助MySQL高效获取数据的数据结构,是一种特殊的文件,包含着对数据表里所有记录的引用指针,因为索引本身也比较大,所以索引一般是存储在磁盘上的,索引的种类有很多,不过如果没有特殊…

Anaconda+Pycharm 项目运行保姆级教程(附带视频)

最近很多小白在问如何用anacondapycharm运行一个深度学习项目,进行代码复现呢?于是写下这篇文章希望能浅浅起到一个指导作用。 附视频讲解地址:AnacondaPycharm项目运行实例_哔哩哔哩_bilibili 一、项目运行前的准备(软件安装&…

突破AI性能瓶颈 揭秘LLaMA-MoE模型的高效分配策略

获取本文论文原文PDF,请在公众号【AI论文解读】留言:论文解读 本文介绍了一种名为“LLaMA-MoE”的方法,通过将现有的大型语言模型(LLMs)转化为混合专家网络(MoE),从而解决了训练MoE…

【Linux】升级FastJSON版本-jar

摘要 在长期运行的应用服务器上,近期的安全漏洞扫描揭示了fastjson组件存在潜在的安全隐患(FastJSON是一个Java 语言实现的 JSON 解析器和生成器。FastJSON存在远程代码执行漏洞,恶意攻击者可以通过此漏洞远程执行恶意代码来入侵服务器&…

医疗器械的售后与服务探讨

彩虹医械维修培训 8月长期班报名啦 学技术 考证书 技术支持 大型医疗设备的宕机不仅会造成医疗机构直接的巨额经济损失,宕机期间的损失甚至可以超过维修费用,而且还可能会耽误患者的病情检查,因此对医疗设备的定期保养已经成为各级医院的…

Kafka-02 @KafkaListener学习

一. 引入依赖 SpringBoot 和 Kafka 搭配使用的场景&#xff0c;引入 spring-kafka 即可&#xff1b; <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.8.11</version>…

vs2022报找不到.netframework,version=V4.8的引用程序集

最近在win7上面安装vs2022 17.6版本&#xff0c;打开.net项目编译的时候出现了这个提示。 解决方案就是安装.net4.8开发者工具包&#xff0c;不是运行工具包。 安装完成之后在项目的属性中修改&#xff1a; 点击下载&#xff1a;.net4.8开发者工具包

HTML+CSS+JS 实现3D风吹草动效果(B站视频)

效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>3D effect&…

CAD应用程序开发工具CST CAD Navigator 1.4.0.1 正式发布—— 带来了 G 代码生成功能

CST CAD Navigator是一款兼容Windows和Linux的CAD应用程序。在其简单的界面下&#xff0c;有一个可以快速查看2D图纸和3D模型的强大核心。软件可以轻松地导入和导出文件&#xff0c;获取尺寸&#xff0c;并创建截面视图。 下载最新版CST CAD Navigatorhttps://www.evget.com/p…

SpringIOC原理

SpringIOC原理 1.概念 Spring通过一个配置文件描述Bean及Bean之间的依赖关系&#xff0c;利用Java语言的反射功能实例化Bean并建立Bean之间的依赖关系。Spring的IOC容器在完成这些底层工作的基础上&#xff0c;还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、…

台灯的种类有哪些?五款护眼台灯测评分析

随着时代的发展&#xff0c;现在市面上出现了更为护眼的选择——LED台灯。然而&#xff0c;面对琳琅满目的产品&#xff0c;挑选一款合适的台灯似乎成了一项挑战。那么&#xff0c;我们应该如何从众多选项中&#xff0c;找到那款既实用又护眼的台灯呢&#xff1f;以下内容将为您…

一个项目学习Vue3---Vue3中自带的事件

1. .stop 阻止事件继续传播&#xff0c;即防止事件冒泡到父元素。 <div click.stop"handleClick">点击我</div> 2. .prevent 阻止事件的默认行为&#xff0c;比如阻止表单提交时的页面刷新。 <form submit.prevent"handleSubmit">阻…

替你测试过了,这些国产大模型都很强,快来试试哪款适合你

替你测试过了&#xff0c;这些国产大模型都很强&#xff0c;快来试试哪款适合你 &#x1f4a1;&#x1f525; 大家好&#xff0c;我是猫头虎&#xff0c;科技自媒体博主。今天我将为大家介绍几款顶尖的国产AI大模型&#xff0c;它们各有所长&#xff0c;看看哪一款更适合你的需…

esp8266+micropython+irsend红外发射调试记录

在网上搜索esp8266micropython的红外发射库&#xff0c;没找到&#xff0c;发现 接收库是有的&#xff0c;可以参考&#xff1a;基于MicroPython的ESP8266连接外设IO&#xff08;二&#xff09;_micropython 红外接收-CSDN博客 可惜没有发射&#xff0c;很不方便。 这里都有介…

Echarts折线图---带颜色过度---的小demo

效果: 代码: <template><div id"lineEchtar"><div id"lineEchtars" style"min-height: 300px; width: 100%"></div></div> </template><script> import * as echarts from "echarts"; //…

PHP充电桩小程序系统源码

绿色出行新伴侣&#xff01;充电桩小程序&#xff0c;让充电不再烦恼✨ &#x1f50b; 开篇&#xff1a;告别电量焦虑&#xff0c;充电桩小程序来救场&#xff01; 在这个电动车日益普及的时代&#xff0c;电量不足成了不少车主的“心头大患”。但别担心&#xff0c;充电桩小…

手机容器化 安装docker

旧手机-基于Termux容器化 1、安装app 在手机上安装Termux或ZeroTermux&#xff08;Termux扩展&#xff09; 1.1 切换源 注&#xff1a;可以将termux进行换源&#xff0c;最好采用国内源&#xff0c;例如&#xff1a;清华源等 更新包列表和升级包&#xff08;可选&#xff0…

智能设备中的语音是如何写入语音芯片的

你是否曾好奇&#xff0c;那些智能设备中发出的清晰而自然的语音&#xff0c;是如何被巧妙地植入到微小的语音芯片中的呢&#xff1f;难道真的是通过我们日常使用的电脑吗&#xff1f;今天&#xff0c;就让我们一起探索将语音写入语音芯片的过程。 1、准备语音文件&#xff1a;…

低代码技术革新:高效构建现代人事管理系统

引言 在快速变化的商业环境中&#xff0c;企业必须不断提升其内部管理效率&#xff0c;以保持竞争力和灵活性。人事管理系统作为企业核心业务系统之一&#xff0c;承担着招聘、培训、绩效管理等重要功能&#xff0c;直接影响着企业的人才管理和运营效率。传统的人事管理系统通常…

GuLi商城-商品服务-API-品牌管理-OSS获取服务端签名

新建第三方服务: 引入common 把common中oss的依赖都拿到第三方服务中来 配置文件: 加上nacos注解:<