成为git砖家(4): git status 命令简介

news2024/11/20 14:34:48

1. untracked 和 tracked 状态

Remember that each file in your working directory can be in one of two states: tracked or untracked. Tracked files are files that were in the last snapshot, as well as any newly staged files; they can be unmodified, modified, or staged. In short, tracked files are files that Git knows about.

对于一个本地的 git 仓库, 里面的文件无非是两种状态:tracked 和 untracked。 tracked 意思是被跟踪中, 是说在上一次 snapshot(快照)中已经出现了,当然它现在也可以被 stage。

对于 snapshot 的概念, pro git 在目前的章节还没有明确给出解释, gpt 给出的解释是:

当你进行一次提交时, git 会生成一个新的 commit 对象,记录当前项目的完整状态(快照)。每个提交都会保存一个新的项目状态, 而不是只保存变更。

换言之,有几个 commit 就可以认为有几个快照,下图有5次commit,有5个快照:
在这里插入图片描述

2. tracked 状态的细分

对于已经处于 tracked 状态的文件, 又可以细分为:

  • unmodifled: checkout 出来后,文件没有被修改过
  • modifed:checkout 出来后,修改了文件、但是没有执行 git add
  • staged: checkout 出来后、修改了文件、并且执行了 git add
    在这里插入图片描述

3. 检查文件当前状态

git status
# 或
git status -s

使用 git status 命令查询文件状态。 默认是按 long 格式输出,也就是给出比较容易让人读懂的提示。

也可以使用 git status -s 命令, 意思是以简短的形式来表达文件的状态。
在这里插入图片描述

4. git status -s 解读

git help status --web 给出了完整文档,里面写到:
在这里插入图片描述
也就是说, 每个文件的状态的short格式,通常由 XY PATH 来表述, PATH 是文件路径,XY 则根据不同情况有不同解释:

  • 当出现merge并且merge是成功的,或者merge之外的情况下,X表示index的状态,Y表示working tree的状态
  • 当出现merge冲突并且尚未解决,X和Y分别表示merge的每个head相对于公共祖先节点的变更
  • 当文件是 untracked 状态时,X和Y总是相同的,因为它们没有被记录在 index 中,因此只显示 ??.

对于 tracking 状态的文件,使用如下字母来表示X和Y具体取值:

  • ‘’ unmodifled
  • M modified
  • T 文件类型变了
  • A 添加的
  • D 删除了的
  • R 重命名了的
  • C 拷贝了的
  • U 更新了但是没有被merge
    在这里插入图片描述

5. gitk 中的文件状态

gitk 界面虽然不如 fork 那样好看,但是,git status 显示出的文件状态的变化,在 gitk 里面都是能看到的. 换言之, git status + git diff + git diff --cached 三个命令组合的得到的结果, 在 gitk 中用鼠标点选一下就能查看。

已经添加到索引但未提交的修改,相当于 git diff --cached:
在这里插入图片描述
未添加到索引且未提交的修改:相当于 git diff 的结果:
在这里插入图片描述
这两种情况下, gitk 中的 sha1 都提示为 00000…00 (全0)。

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

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

相关文章

Feign自定义调用第三方接口并实现负载均衡

Feign自定义调用第三方接口并实现负载均衡 Feign简介: Feign 是一个声明式的、模板化的HTTP客户端,用于简化HTTP客户端的开发。它是Spring Cloud Netflix微服务套件中的一部分,使得编写Java HTTP客户端变得更加容易。它的原理主要是代理模式…

Rust |了解+ 环境配置(rust+vscode)

1 了解rust 1️⃣0️⃣0️⃣秒了解Rust_哔哩哔哩_bilibili 2 安装rust 前提安装过vs,有c环境 1.下载 根据自己的系统下载对应的版本:安装地址 查看自己版本: 右键 此电脑 ;点击 属性 ;查看 系统类型 点击 下载RU…

智慧城管解决方案

1. 项目整体概述 智慧城管项目面临历史发展机遇,十九大提出以人为核心保障民生,推进新型城镇化。市民对政府服务有新诉求,同时云计算、物联网、移动互联网等技术迅速发展。 2. 传统城管业务模式问题 传统城管业务模式存在问题,…

树莓派学习记录

一,型号 第一代Raspberry Pi 1 Model B 第一代升级版 Raspberry Pi 1 B 第二代 Rasberry Pi 2 Model B 第三代及升级版 Rasberry Pi 3 Model B/B 第四代 Rasberry Pi 4 Model B Model A版 比B版便宜 Zero 版 售价更便宜 总结 二,树莓派接口 如下图…

Hello 算法:动画图解、一键运行的数据结构与算法教程

Hello 算法 《Hello 算法》是一份开源、免费的数据结构与算法入门教程,特别适合新手。全书采用动画图解,内容清晰易懂,学习曲线平滑,引导初学者探索数据结构与算法的知识地图。源代码可以一键运行,帮助读者通过练习提…

【教学类-70-01】20240728一个茶壶两个茶杯(果茶)

‘ 背景需求: 用通义万相下载简笔画茶壶、茶杯 茶杯,简单笔画,卡通,黑白,未着色,幼儿插图,线条画,没有背景,没有颜色,黑白漫画线条艺术:,空背景…

JAVAWeb实战(后端篇)

因为前后端代码内容过多,这篇只写后端的代码,前端的在另一篇写 项目实战一: 1.创建数据库,表等数据 创建数据库 create database schedule_system 创建表,并添加内容 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------…

十一、Dockerfile解析

目录 一、Dockerfile简介 二、dockerfile的构建的三个步骤 三、Dockerfile的构建过程 1、DockerFile内容的基础知识 2、Docker执行Dockerfile的大致流程 四、dockerfile常用的保留字 1、FROM 2、MAINTAINER 3、RUN 4、EXPOSE 5、WORKDIR 6、USER 7、ENV 8、VOLUME …

VScode使用Github Copilot插件时出现read ECONNREST问题的解决方法

文章目录 read ECONNREST查看是否仍是 Copilot 会员查看控制台输出网络连接问题浏览器设置问题笔者的话 read ECONNREST 最近使用 Copilot 时一直出现 read ECONNREST 问题,这个表示连接被对方重置了,就是说在读取数据时连接被关闭。 我首先怀疑是不是…

QT常用的控件

QT常用控件 一.控件概述二.QWidget 核心属性2.1 核心属性概览2.2 enabled代码示例:使用代码创建一个禁用状态的按钮代码示例: 通过按钮2 切换按钮1 的禁用状态. 2.3 geometry代码示例: 控制按钮的位置代码示例: ⼀个随机按钮程序代码示例: 感受 geometry 和frameGeo…

Python | TypeError: ‘NoneType’ object is not iterable

Python | TypeError: ‘NoneType’ object is not iterable 在Python编程中,TypeError: NoneType object is not iterable 是一个常见的错误,通常表明你尝试对一个值为 None 的对象进行迭代操作,而 None 类型的对象是不可迭代的。本文将深入…

python count返回什么

描述 count() 方法用于统计字符串中某个子字符串出现的次数,可选参数为开始搜索与结束搜索的位置索引。 语法 count() 方法语法: S.count(sub[,start0[,endlen(S)]]) 参数 sub -- 搜索的子字符串。 S -- 父字符串。 start -- 可选参数,…

Windows11和Win10如何彻底永久关闭Windows defender

Windows11和Win10如何彻底永久关闭Windows defender 亲测简单快捷有效关闭病毒和威胁防护。 使用关闭windows defender工具。 随时可以重新开启病毒和威胁防护。

【Spring Boot】Spring 的安全框架:Spring Security

Spring 的安全框架:Spring Security 1.Spring Security 初识1.1 核心概念1.2 认证和授权1.2.1 验证(authentication)1.2.2 授权(authorization) 1.3 模块 2.核心类2.1 Securitycontext2.2 SecurityContextHolder2.2.1 …

刷题心得之位运算技巧 gcd 和 lcm

位运算 gcd 和 lcm 位运算技巧遍历 n 的所有子集, 不包括空集遍历 n 的所有子集, 包括空集提取出 n 二进制中第一次出现的1消除 n 二进制中第一次出现的1判断 n 是否是 2 的幂次方 gcd [最大公约数]lcm [最小公倍数] 位运算技巧 遍历 n 的所有子集, 不包括空集 #include <…

52.TFT_LCD液晶屏字符显示

&#xff08;1&#xff09;实验目标&#xff1a;在5寸显示屏&#xff08;800 * 480 60&#xff09;中央显示汉字&#xff08;黄色&#xff09;&#xff0c;且背景颜色为青色。 &#xff08;2&#xff09;代码编写&#xff1a; tft_ctrl模块&#xff1a; module tft_ctrl(inp…

电子电气架构---域控制器的软硬件趋势

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

TiDB-从0到1-sync-diff-inspector数据校验工具

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCCTiDB-从0到1-部署篇TiDB-从0到1-配置篇TiDB-从0到1-集群扩缩容TiDB-从0到1-数据导出导入TiDB-从0到1-BR工具 一、sync-diff-inspector工具 sync-diff-inspector是TiDB原生…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第六十二章 定时器按键消抖实验

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

详解Mysql InnoDB引擎 04

文章目录 1. InnoDB 简介2. 逻辑存储结构2.1 表空间 idb文件2.2 段2.3 区 1M2.4 页 16KB2.5 行 3. 架构3.1 内存结构3.1.1 Buffer Pool 缓冲池3.1.2 Change Buffer 更改缓冲区3.1.3 Adaptive Hash Index3.1.4 Log Buffer 3.2 磁盘结构 4. 后台线程5. 事务原理5.1 redo log 重做…