Git命令add和commit的区别
2024-08-27 13:47:49
要想弄明白git add
和git commit
的区别,首先我们需要知道三个概念:工作区(Working Directory)
、版本库(Repository)
、暂存区(Stage or index)
。
工作区
当你在开发一个项目时,主目录就是你的工作区。
版本库
工作区中有一个隐藏目录.git
,这个就是git的版本库了。
暂存区
Git的版本库里存了很多文件,其中包括称为Stage或index的暂存区,还有一个git为我们自动创建的第一个分支master
,以及指向master
的一个指针HEAD
。
下面就是三个区的示意图:图片来着廖雪峰老师的 博客。
三个区的示意图
区别
git add
和git commit
的区别就在于:git add
把文件添加进去,实际上就是把文件修改添加到暂存区;git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支。所以,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
所以要想将修改提交到master中一定要先git add
到暂存区中,再git commit
到master分支。
最新文章
- 【推荐】CentOS安装Subversion-1.8.11+HTTP协议支持配置
- parawork平台介绍
- Spark 自定义累加变量(Accmulator)AccumulatorParam
- .NET 泛型分析
- Weblogic日志机制详解
- sumoselect插件
- sqlite 跨数据库查询
- lintcode:玩具工厂
- webstorm卡、闪退以及win10中jdk配置
- bzoj3995[SDOI2015]道路修建
- perl 调用方法 子例程说明
- mybatis入门-框架原理
- leetcode-1006 Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode第四天
- Ubuntu中firefox设置成中文
- CSS定位概述
- VXLAN, 一种叠加在L3网络上的L2网络
- Python脱产8期 Day01
- mysql 记录根据日期字段倒序输出
- django 关于render的返回数据
热门文章
- Eclipse配色方案插件 真漂亮!
- list.ensureCapacity竟然会变慢
- 手动安装Firefox Linux
- Cocos2dx使用ios内支付IAP具体流程-白白
- 工作总结 for 另类写法 循环加时间 集合合并 也是用的 static class Enumerable (IEnumerable<;T>;的扩展方法) (IEnumerable<;T>; 的 工具类) (所有集合 数组都实现IEnumerable<;T>;)
- Python学习笔记_Python对象
- a non-linear editing software
- SemaphoreSlim
- android.content.ReceiverCallNotAllowedException: 解决方法
- zoj 3023 Light Bulb