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

【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.xdnf.cn/news/15520.html

相关文章:

  • HTTP协议介绍
  • 堆排序算法详解:原理、实现与C语言代码
  • Opencv---cv::minMaxLoc函数
  • 激活函数LeakyReLU
  • ai 编程工具,简单总结
  • C++设计模式之创建型模式
  • WSL2更新后Ubuntu 24.04打不开(终端卡住,没有输出)
  • Java对象的比较
  • 每日算法刷题Day49:7.16:leetcode 差分5道题,用时2h
  • 什么是数据仓库?数据库与数据仓库有什么关系?
  • 格密码--Ring-SIS和Ring-LWE
  • Python 日志轮换处理器的参数详解
  • 【python】sys.executable、sys.argv、Path(__file__) 在PyInstaller打包前后的区别
  • C语言:第07天笔记
  • smolagents - 如何在mac用agents做简单算术题
  • STM32外设介绍3:(UART 和 USART 通信详解<含重定向与 DMA>)
  • 大端序与小端序
  • 【机器学习】数据理解:数据导入、数据审查与数据可视化
  • 2.库操作
  • 自动驾驶激光3D点云处理系统性阐述及Open3D库函数应用
  • 百炼Agent MCP与IoT实战(二):阿里云MQTT Broker配置
  • 控制Vue对话框显示隐藏
  • fastadmin会员单点登录
  • python的慈善捐赠平台管理信息系统
  • MyBatis详解以及在IDEA中的开发
  • 数据结构与算法学习(一)
  • 个人笔记(linux/tr命令)
  • LVS:高性能负载均衡利器
  • Java的Gradle项目,使用SLF4J+Log4j2+log4j2.xml
  • C++ 计数排序、归并排序、快速排序