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核心内容,了解后对后续的 ...
随机推荐
- .Net Core之Swagger
1.项目生成xml 2.添加链接文件,并将属性设值为始终复制 3.添加swagger引用:Swashbuckle.AspNetCore 4.startup.cs配置swargger的xml来源: Co ...
- Spring Cloud各组件超时总结
Ribbon的超时 全局设置: ribbon: ReadTimeout: 60000 ConnectTimeout: 60000 1 2 3 局部设置: service-id: ribbon: Rea ...
- python bytes类型
python3中二进制数据则由bytes类型表示,8位一字节 格式化打印文件的二进制编码 with open('spiderman.mkv', "rb") as f: print( ...
- Autofac创建实例的方法总结
1.InstancePerDependency 对每一个依赖或每一次调用创建一个新的唯一的实例.这也是默认的创建实例的方式. 2.InstancePerLifetimeScope 在一个生命周期域中, ...
- 【NOIP 2017】Day2 T3 列队
Problem Description \(Sylvia\) 是一个热爱学习的女孩子. 前段时间,\(Sylvia\) 参加了学校的军训.众所周知,军训的时候需要站方阵. \(Sylvia\) 所在的 ...
- 增强 用文本增强修改SAP标准屏幕中的字段名称 属于元素的文本增强
如果想要改变标准屏幕中的字段名称,如把物料主数据基本数据元素的名字改为我们想要的名字 . 1.首先,事务MM03进入物料主数据的基本数据2视图中,将鼠标光标放在需要更改的字段“页格式”上,然后按F1键 ...
- HDU 2426 Interesting Housing Problem(二分图最佳匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=2426 题意:每n个学生和m个房间,现在要为每个学生安排一个房间居住,每个学生对于一些房间有一些满意度,如果满意度 ...
- react native 渐变组件 react-native-linear-gradient
github: https://github.com/react-native-community/react-native-linear-gradient 安装:yarn add react-n ...
- SourceTree/git解决pre-commit hook failed的问题
一. git commit -m 'xxx' 出现问题 今天在上传项目的时候在commit阶段遇到一个问题,无论是在Sourcetree上传还是用命令git commit -m 'xxx'都报了一下错 ...
- 理解 Redis(6) - List 值
list 值就是一组根据插入顺序排列的字符串, 从左向右排列, 左边为头(head), 右侧为尾(tail). 左边为顶部, 右边为底部. 下图为 list 值的示意图: 从左侧开始向键为 num 的 ...