当前位置: 首页 > news >正文

【add vs commit】Git 中的 add 和 commit 之间的区别

关于git addgit commit还有一些有点不太清楚的地方,这里写一篇文章好好理一理

git add:添加到暂存区

git add实际上是把工作区中的内容存入“暂存区”

通俗来讲就是告诉Git:“这些文件我准备好commit了”

git add file.txt  # 添加单个文件
git add . # 添加当前目录下所有有变动的文件
git add -A # 添加所有变化(包括删除)

关键

git add并不会真正的“保存修改”,只是把想要提交的文件标记出来

git commit:提交到本地仓库

git commit就是把暂存区的内容真正的提交到本地仓库的历史中,并且生成一个commit的快照,也就是我们可以在git log中看到的 commit 记录
如图:
git-log

通俗来讲就是**“真正地记录一次历史”**

关键

只有执行了git commit之后,这些改动才变成了真正的 Git 历史的一部分

二者类比

操作用写文章类比
git add把写好的内容放进打印队列中
git commit按下打印键,把内容打印出来

一般的操作流程

# 对文件做修改....
git status
git add <文件名>
git commit -m "change something"

我们在协作过程中是先git add,将内容放入暂存区之后才git commit提交暂存区中的内容,没有通过git add加入暂存区的内容不会被我们 commit 到历史记录中

commit之后

在执行

git commit -m "some change"

之后
Git 会将暂存区中所有内容写入 Git 历史,即提交一个新的 commit
然后暂存区会变成与当前commit相同的状态,也就是暂存区中不再有需要commit的内容了,再运行git status会显示:

nothing to commit, working tree clean

所以git commit之后暂存区会被“清空”,变成与最新提交一致的状态。
而没有被add的修改,不会与 commit 产生关联

http://www.dtcms.com/a/282530.html

相关文章:

  • 秘塔AI搜索的深度研究推出:它的“免费午餐”还能走多远?
  • NULL值处理:索引优化与业务设计实践指南
  • GIT版本回退
  • 堆排序算法详解:原理、实现与C语言代码
  • ubuntu--自启动程序
  • Docker Compose 清理指南:`down` 与 `down -v` 的核心区别与使用场景
  • Jenkins credentials 增加了github credential 但是在Git SCM 凭证中不显示
  • 基于SpringBoot+Uniapp球场预约小程序(腾讯地图API、Echarts图形化分析、二维码识别)
  • 如何用 Charles 中文版抓包工具高效调试 API 并优化网络性能
  • 自适应哈希索引 和 日志缓冲区
  • 结构体(二)
  • XXE漏洞1-XXE 漏洞简介-XML 语法-DTD 讲解-外部实体讲解
  • 【React Native】安装配置 Expo Router
  • HTML基础P1 | HTML基本元素
  • Jmeter中Parallel Controller的配置方法(并发)
  • 小白学HTML,操作HTML文件篇(2)
  • 二进制枚举
  • 基于Canal实现MySQL数据库数据同步
  • 百炼Agent MCP与IoT实战(二):阿里云MQTT Broker配置
  • Unity UGUI 无限循环列表组件
  • 倒立摆系统控制器设计报告
  • PyCharm(入门篇)
  • OpenSearch SQL 查询完整指南
  • Spring Boot 缓存 与 Redis
  • Java-74 深入浅出 RPC Dubbo Admin可视化管理 安装使用 源码编译、Docker启动
  • 【Android】TextView的使用
  • 【Fedora 42】Linux内核升级后,鼠标滚轮失灵,libinput的锅?
  • 颠覆NLP十年范式!OpenCSG中文数据集助推CMU无分词器模型登顶SOTA
  • Jetpack Compose 中 Kotlin 协程的使用
  • 重学SpringMVC一SpringMVC概述、快速开发程序、请求与响应、Restful请求风格介绍