`
phplaber
  • 浏览: 142961 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Git中三种文件状态及其转换

    博客分类:
  • Git
阅读更多

Git作为一种版本控制解决方案,由于其具有的分布式特性,正被越来越多的用户熟知,一些有名的开源项目,如:Linux kernel,CakePHP,Ruby on Rails等,都在使用Git进行版本管理。

 

在Git中,文件状态是一个非常重要的概念,不同的状态对应不同的操作。因此,要想熟练掌握Git的用法,需要了解Git的几种文件状态。

 

为了说明的方便,现在初始化一个项目,也就是将项目所在目录纳入Git的管理之下。假设项目目录为hello_world,初始化之后,在目录下新建README.txt文件,接着,使用“git status”查看文件状态,如图:

 

 

可以看到,Git友好的标示出README.txt为“Untracked files”,并且提示使用“git add <file>...”的命令将文件包含到待提交清单中。按照提示,使用“git add README.txt”命令,然后,使用“git status”查看文件状态,如图:

 

 

文件README.txt状态变成了“Changes to be committed”,也就是说README.txt在暂存区域生成了快照,等待被提交。正如Git所提示的那样,通过“git rm --cached README.txt”命令,可以将文件状态还原为未暂存状态,即回到“Untracked files”文件状态。现在,README.txt已经可以被提交到git目录中了,但是暂时不提交。打开README.txt,向其中加些内容,保存之后,用“git status”查看,返回如图信息:

 

 

可以看到,除了之前的“Changes to be committed”状态,现在又多了一条“Changes not staged for commit”状态,表明文件已经修改,但是还没有放入暂存区域,也就是没生成快照。如果现在进行commit操作,只是将修改之前的文件快照提交到了git目录,一定记住:只有暂存区域的文件(即:文件状态为“Changes to be committed”)才会被提交。正如提示,通过“git add README.txt”命令将已修改文件更新到暂存区域中,如果想撤销修改,可以使用“git checkout -- README.txt”命令。

 

正如上文所说,Git在未进行commit操作之前,存在三种状态:Untracked files,Changes not staged for commit及Changes to be committed,每种状态之间可以随意进行互相转换。了解这三种状态各自所对应的不同情况,能够帮助你方便有效的使用Git来管理项目。

 

(完)

 

  • 大小: 8.2 KB
  • 大小: 7.1 KB
  • 大小: 11.7 KB
分享到:
评论

相关推荐

    git上传文件类型限制

    git上传文件文件类型限制,如屏蔽一些依赖文件及生成文件上传

    GIT打包文件GIT打包文件

    GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件

    Git中.gitignore文件忽略文件的使用

    附件是Git中使用.gitignore文件进行上传文件的选择性忽略的使用。可以通过使用该文件避免上传到远端一些中间文件,生成的.class文件,特定于开发环境的文件,以及敏感文件。

    git 文件管理PDF存储

    Git 文件管理 PDF 存储 版本控制系统是记录一个或多个文件内容变化,以便将来查阅特定版本修订情况的系统。常见的版本控制系统有 CVS、SVN、Git 等。 Git 是一种免费、开源的分布式版本控制系统,用于敏捷高效地...

    git代码提交过滤文件

    git代码提交过滤文件,可以过滤编译工具等不想提交的文件

    C# .net的Git忽略文件整理

    C# .net的Git忽略文件整理

    Git添加与提交文件与查看

    4、确保你已经添加了所有要提交的文件,可以使用以下命令来查看当前文件的状态,这会显示哪些文件已添加到暂存区以及哪些文件还未添加。 git status 这表示你已经成功地将名为 one/新建文件.txt 的文件添加到Git仓库...

    iOS git 配置文件

    git上传大文件(git-lfs)以及忽略文件配置:.gitattributes .gitignore

    Git忽略文件.gitignore

    Git忽略文件.gitignore

    Git常用的33个命令

    git status:查看文件状态 git add [文件名]:将文件的修改加入暂存区 git reset [文件名]:将暂存区的文件取消暂存,或者切换到指定版本git reset --hard [版本号] git commit -m "描述信息" [文件名]:将暂存区的...

    git-vim, 用于Git的vim文件.zip

    git-vim, 用于Git的vim文件 git.vim简介git vim提供:在Vim中调用git函数的插件文件git显示的语法文件命令:gitadd &lt;文件&gt;如果没有指定,git添加 &lt;文件&gt; 或者当前文件。:gitcomm

    git安装文件及汉化补丁

    git安装文件及汉化补丁

    git安装包的zip文件

    git安装包的zip文件

    项目上传git过滤文件demo文件

    项目上传git过滤文件demo文件

    git相关安装文件

    git相关安装文件,无脑操作安装

    C# .net的git忽略文件

    C# .net的git忽略文件

    git文件包

    git文件包git文件包git文件包

    Git 上传大文件

    mac本使用git上传大文件,内容详细,简单,易操作

    gitblit1.8 中文修正版

    gitblit-应用版-1.8.jar 为应用版本 替换应用下的文件 gitblit.jar wicket 有中文问题一并替换 注意: 如果提示找不到WebPage,将wicket-1.4.23.jar 拷贝到tomcat/lib目录一份。 如果是apache+tomcat方式,有乱码...

    C# VisualStudio相关Git忽略文件 .gitignore

    VisualStudio开发C#程式码时,使用Git进行版本控制。每次提交都会有一些自动生成的文件不是我们所关心的,设置忽略文件,让Git只去比对核心文件以节省时间和资源

Global site tag (gtag.js) - Google Analytics