博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git命令学习2
阅读量:5272 次
发布时间:2019-06-14

本文共 1281 字,大约阅读时间需要 4 分钟。

工作区和暂存区

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

工作区(Working Directory)

就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:

版本库(Repository)

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫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.
先用git status查看一下状态:

Git非常清楚地告诉我们,readme.txt被修改了,而LICENSE还从来没有被添加过,所以它的状态是未跟踪的文件(Untracked)。
现在,使用两次命令git add,把readme.txt和LICENSE都添加后,用git status再查看一下:
$ git add readme.txt LICENSE $ git status

现在,暂存区的状态就变成这样了:

所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。
$ git commit -m "understand how stage works"[master e43a48b] understand how stage works 2 files changed, 2 insertions(+) create mode 100644 LICENSE 一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:
$ git statusOn branch masternothing to commit, working tree clean 现在版本库变成了这样,暂存区就没有任何内容了:

小结

暂存区是Git非常重要的概念,弄明白了暂存区,就弄明白了Git的很多操作到底干了什么。

没弄明白暂存区是怎么回事,再看一次。

 
 

转载于:https://www.cnblogs.com/zbzhm3728/articles/11538479.html

你可能感兴趣的文章
SharePoint 2013: Knockout JS + Rest Service展示List数据
查看>>
页面缓存清除在浏览器加以下代码
查看>>
NSURLSession
查看>>
分享接私活心得(公司内部私活),晒晒私活成果[原创]
查看>>
Map集合中value()方法与keySet()、entrySet()区别
查看>>
不仅仅是写代码,而是完成作品
查看>>
C#开发Unity游戏教程之Scene视图与脚本的使用
查看>>
rsync入门
查看>>
认清性能问题
查看>>
jQuery源码分析--Event模块(2)
查看>>
BZOJ1121: [POI2008]激光发射器SZK
查看>>
BZOJ1093: [ZJOI2007]最大半连通子图
查看>>
BZOJ2656: [Zjoi2012]数列(sequence)
查看>>
BZOJ3438: 小M的作物
查看>>
GB2312简体中文编码表
查看>>
Thinkphp或查询使用
查看>>
[No0000F2]ip安全监视器
查看>>
【数据挖掘】机器学习的几何观点
查看>>
matlab画柱状图
查看>>
空类 sizeof 为什么是1
查看>>