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核心内容,了解后对后续的 ...
随机推荐
- Mac python 2.X 升级到 3.X
Mac OS X10.9默认带了Python2.7,不过现在Python3.3.3出来了,如果想使用最新版本,赶紧升级下吧.基本步骤如下. 第1步:下载Python3.3 下载地址如下: Python ...
- 基于 Python 和 Pandas 的数据分析(4) --- 建立数据集
这一节我想对使用 Python 和 Pandas 的数据分析做一些扩展. 假设我们是亿万富翁, 我们会想要多元化地进行投资, 比如股票, 分红, 金融市场等, 那么现在我们要聚焦房地产市场, 做一些这 ...
- javascript 获得以秒计的视频时长
<!DOCTYPE html> <html> <body> <h3>演示如何访问 VIDEO 元素</h3> <video id=&q ...
- SQL 中常用的功能函数,自定义的功能行数
在SQL Server指定的数据库中,有Programmability目录,在这个目录下,有存储过程,有功能函数. set ANSI_NULLS ON set QUOTED_IDENTIFIER ON ...
- C++.sprintf
ZC:sprintf,sprintf_s 1.经测试 sprintf,是会在字符串的最后 加上'\0'的,∴ 不用担心 字符串的结尾的问题 2. 3. 4. 5.
- QT新建工程编译出现"Moc'ing xxx.h..." 找不到文件或者error MSB6006: "cmd.exe" exited with code 3.
产生这个问题的原因是QT的头文件路径包含出错: (1)如果没有添加如图所示的路径,则添加后重新编译: (2)如果已经添加了,则删除后,重新添加,在重新编译: (3)或者在QT Project Sett ...
- Codeforces 1038 E - Maximum Matching
E - Maximum Matching 思路: 欧拉图 定理:一个度数为奇数的点的个数小于等于2的联通图存在欧拉回路 对于这道题目的图,点的个数为4,所以最坏的情况下4个点的度数都为奇数,在这种情况 ...
- ionic-input单选复选杂交
<label class="toggle toggle-positive"> <input type="radio" ng-model=&qu ...
- Python 常见时间处理
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. ...
- RabbitMQ消费方式汇总
在学习本章节前,请先学习之前的章节:Java访问RabbitMQ:https://www.cnblogs.com/duanjt/p/10057330.htmlRabbitMQ消息发布时的权衡:http ...