Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。

先来看名词解释。
工作区(Working Directory)
就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:
版本库(Repository)
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
分支和HEAD的概念我们以后再讲。
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
俗话说,实践出真知。现在,我们再练习一遍,先对readme.txt做个修改,比如加上一行内容:
Git is a distributed version control system. Git is free software distributed under the GPL. Git has a mutable index called stage.
然后,在工作区新增一个LICENSE文本文件(内容随便写)。
先用git status查看一下状态:
$ git status
# On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: readme.txt # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # LICENSE no changes added to commit (use "git add" and/or "git commit -a")
Git非常清楚地告诉我们,readme.txt被修改了,而LICENSE还从来没有被添加过,所以它的状态是Untracked。
现在,使用两次命令git add,把readme.txt和LICENSE都添加后,用git status再查看一下:
$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: LICENSE # modified: readme.txt #
现在,暂存区的状态就变成这样了:
所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。
$ git commit -m "understand how stage works" [master 27c9860] understand how stage works 2 files changed, 675 insertions(+) create mode 100644 LICENSE
一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:
$ git status # On branch master nothing to commit (working directory clean)
现在版本库变成了这样,暂存区就没有任何内容了:
小结
暂存区是Git非常重要的概念,弄明白了暂存区,就弄明白了Git的很多操作到底干了什么。
# git
# 暂存区
# 工作区
# 暂存区与工作区
# 暂存区和工作区
# Git 命令使用技巧提供工作效率
# Git 教程之工作区、暂存区和版本库详解
# Git 教程之工作流程详解
# Git工作流演示及三种工作方式
# 库里
# 明白了
# 你可以
# 第一个
# 是有
# 最重要
# 你在
# 两次
# 一遍
# 就没
# 从来没有
# 做个
# 告诉我们
# 你又
# 非常重要
# 讲了
# 唯一一
# 先用
# 所有内容
# 第二步
相关文章:
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
如何用狗爹虚拟主机快速搭建网站?
如何在Windows环境下新建FTP站点并设置权限?
微信推文制作网站有哪些,怎么做微信推文,急?
建站主机数据库如何配置才能提升网站性能?
如何登录建站主机?访问步骤全解析
已有域名如何快速搭建专属网站?
如何通过老薛主机一键快速建站?
深圳网站制作的公司有哪些,dido官方网站?
如何在云指建站中生成FTP站点?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
如何快速配置高效服务器建站软件?
大连 网站制作,大连天途有线官网?
如何通过二级域名建站提升品牌影响力?
PHP 500报错的快速解决方法
建站之星代理如何获取技术支持?
如何基于云服务器快速搭建网站及云盘系统?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
深入理解Android中的xmlns:tools属性
如何快速搭建支持数据库操作的智能建站平台?
建站之星后台管理如何实现高效配置?
寿县云建站:智能SEO优化与多行业模板快速上线指南
如何用免费手机建站系统零基础打造专业网站?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
如何用已有域名快速搭建网站?
,柠檬视频怎样兑换vip?
建站之星2.7模板:企业网站建设与h5定制设计专题
网站网页制作专业公司,怎样制作自己的网页?
贸易公司网站制作流程,出口贸易网站设计怎么做?
公众号网站制作网页,微信公众号怎么制作?
seo网站制作优化,网站SEO优化步骤有哪些?
建站主机系统SEO优化与智能配置核心关键词操作指南
c++ stringstream用法详解_c++字符串与数字转换利器
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
建站主机类型有哪些?如何正确选型
如何确保FTP站点访问权限与数据传输安全?
如何实现建站之星域名转发设置?
建站之星上传入口如何快速找到?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
c# await 一个已经完成的Task会发生什么
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
北京制作网站的公司,北京铁路集团官方网站?
建站之星如何一键生成手机站?
如何快速生成凡客建站的专业级图册?
定制建站哪家更专业可靠?推荐榜单揭晓
Java解压缩zip - 解压缩多个文件或文件夹实例
微课制作网站有哪些,微课网怎么进?
*请认真填写需求信息,我们会在24小时内与您取得联系。