Git的各种状态
考:http://blog.csdn.net/wirelessqa/article/details/19548057
按照文件的存放位置分:
在你自建的Git本地仓库中,有三个区域:本地目录、暂存区、HEAD。
工作目录:也叫work tree, 就是受Git控制的文件夹,所有被跟踪记录的文件都包括在其中;
暂存区(index或者stage):类似一个缓存区域,临时保存你做的改动;
HEAD:指向最近一次提交后的结果。
按照文件的状态分:
工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪
未跟踪的文件的改动不受到Git的版本控制。
已跟踪的文件,即被纳入版本控制的文件,又分为未修改(unmodified)、已修改(modified)、已暂存(staged)三种状态。

当在工作目录中新加入一个文件时,它处于未跟踪状态,这表示其没有纳入Git的版本控制。
通过 git add 命令可以将其加入跟踪,并同时放入暂存区。
一个已经被跟踪的文件,如果没有做过新的修改,就是未修改状态。
一旦对其做了改动,就变成了已修改状态。通过 git add 命令可以将已修改的文件放入暂存区。
初次克隆某个仓库时,工作目录中所有文件都是已跟踪且未修改的状态。
git commit 命令会将暂存区中的文件提交至HEAD所指向的分支。当被commit之后,暂存区的文件将回到未修改状态。

对于如下图所示的git status
最上面的两行绿色,表示已经通过git add 将new file和修改放入暂存区了.
下面的一行红色,表示修改过了,但是没有git add提交修改,也就不会放入暂存区
最下面两行,untracked,没有加入版本控制.
所以git add和git rm是打通工作目录和暂存区的桥梁.
其实git add应该是将untracked和modified连接到staged,貌似上图不对.
PS:对于暂存区,也叫stage或者index或者cached.
Git的各种状态的更多相关文章
- git学习(二) git的文件状态
git的文件状态 用于查看git的状态 git status 用于git文件的删除操作 git rm 如果只是 git rm --cache 仅删除暂存区里的文件: 如果不加--cache 会删除工作 ...
- Git——取消merge状态
MERGING状态 取消MERGING 查看更新历史 $ git reflog 恢复之前状态 $ git reset --hard 06a5578
- git 删除追踪状态
当不小心添加一个不想被git记录等文件时,这个时候就算将该文件记录在了.gitignore里也是没有用的,因为那个文件已经被git记录过了,只有那些从来没有被git记录过的文件(即:自添加进项目后,从 ...
- git撤销各种状态下的操作
使用Git时会出现各种各样的问题,下面是几种情况下怎么反悔的操作 一,未加入缓存区,撤销文件修改 git checkout -- file 二,已加入缓存区,撤销文件提交 git reset HEAD ...
- git ---查看工作状态和历史提交
1.git查看状态 -git status 2.版权声明 版权声明:新建一个 LICENSE.txt 文件 开源协议:MIT //开源许可里面的最宽松的一个协议,别人可以随便用你的代码,但 ...
- mac bash上显示git分支与状态
主要实现 显示当前路径 显示当前所在分支 显示当前修改状态 = 表示一个干净的分支 ~ 表示文件有改动 # 表示已commit 但未 push 通过网上搜索和自己根据实际需要修改的代码如下: .bas ...
- git HEAD游离状态问题解决
最近在迭代一个版本的时候,出现 HEAD detached at xxx 提示,应该是我切换分支的时候,哪里没弄对. 那么可以通过如下办法解决 git checkout 05 # 先checkou ...
- Git 文件状态的转换
很好低使用git 文件的状态转换的了解是非常重要的. 文件转换状态其实可以分为四种: untracked:未跟踪,此文件在工作区中,但并没有加入git库,不参与版本控制. 通过”git add”,”g ...
- git 文件状态与工作区域
在上一篇简单讲述了文件状态与工作区域,在这里结合相关git命令详细了解文件的状态变更. 目录 1. 介绍 2. 常用命令 3. 实际操作 1. 介绍 git的文件状态是其git核心内容,了解后对后续的 ...
随机推荐
- [从零开始搭网站三]CentOS配置JDK
点击下面连接查看从零开始搭网站全系列 从零开始搭网站 上一章我介绍了,如何不用每次都输密码连接服务器.那么这一章终于要开始服务器的开发环境配置了. 1:先输入以下代码来检验有没有已经安装的CDK: r ...
- React Native原生模块向JS传递数据的几种方式(Android)
一般情况可以分为三种方式: 1. 通过回调函数Callbacks的方式 2. 通过Promises的异步的方式 3. 通过发送事件的事件监听的方式. 参考文档:传送门
- 初步:jenkins自动构建安卓Apk
1:本地搭建jenkins 2:下载插件 3:配置相关信息(git,sdk等等) 3:拉取git仓库代码 4:编译执行 参考文章:http://www.cnblogs.com/reblue520/p/ ...
- 51nod 1185 || 51nod 1072 威佐夫博弈
贴个模板:平常的跟高精度java的: int: #pragma comment(linker, "/STACK:1024000000,1024000000") #include&l ...
- P1182 数列分段`Section II`
传送门 思路: 求数列每段和的最大值的最小值,很明显是用二分法求解,加贪心检验.本题关键是要怎么去高效的check,可以考虑一个贪心的思路,能加的就加上,不能则新开一段,so对于二分的值 u ,我们从 ...
- uni-app去掉h5端的导航栏
找到项目的根目录下的pages.json文件,添加一下内容,可以去掉对应页面的导航栏 附上代码 "app-plus":{ "titleNView": false ...
- STL_map.VC6简单使用例子
1. #include <windows.h> //使用map时会出现如下警告:主要意思是 identifier was truncated to '255' characters in ...
- Qt的QVariant类
QStandardItemModel类中的函数 bool setData(const QModelIndex &index, const QVariant &value, int ro ...
- Spring Boot的@SpringBootApplication无法引入的问题
转自:https://blog.csdn.net/cckevincyh/article/details/78962002 今天搭建了springboot,一开始遇到了一个问题,在自己创建的HelloA ...
- vue 里面引入高德地图
效果图: 实现: 一:引入 高德,web-sdk (两种方式) 1:在html 中引入(我用的这一种) <script type="text/javascript" src= ...