git状态转化图,git中你的文件可能存在哪种状态
作为一种版本控制解决方案,Git因其分布式的特点被越来越多的用户所了解。一些著名的开源项目,如Linux内核、CakePHP、Ruby on Rails等。都在使用Git进行版本管理。
在Git中,文件状态是一个非常重要的概念,不同的状态对应不同的操作。所以,要想掌握Git的用法,需要了解Git的几种文件状态。
为了解释方便,现在初始化一个项目,也就是把项目所在的目录置于Git的管理之下。假设项目目录是hello_world。初始化后,在目录中创建新的README.txt文件。然后,使用“git status”查看文件状态,如图所示:
正如您所看到的,Git友好地将README.txt标记为“未跟踪的文件”,并提示使用命令“git add file .”将文件包含在要提交的列表中。根据提示,使用“git add README.txt”命令,然后使用“git status”检查文件状态,如图所示:
文件README.txt的状态更改为“待提交的更改”,这意味着README.txt在临时存储区生成快照,等待提交。正如Git所建议的,通过“gitrm-cached readme.txt”命令,可以将文件状态恢复到未primed状态,也就是可以恢复到“未跟踪文件”的文件状态。现在README.txt可以提交到git目录,但暂时不会提交。打开README.txt,给它添加一些内容。保存后,用“git status”检查,返回如图所示的信息:
如您所见,除了之前的“待提交的更改”状态之外,现在还有另一种“未暂存待提交的更改”状态,表示文件已被修改,但尚未放入临时存储区域,即没有生成快照。如果现在执行提交操作,则只有修改前的文件快照被提交到git目录,必须记住,只有临时存储区中的文件(即文件状态为“要提交的更改”)将被提交。根据提示,通过“git add README.txt”命令将修改后的文件更新到临时存储区域。如果想撤销修改,可以使用“git checkout - README.txt”命令。
如上所述,在提交之前,Git有三种状态:未跟踪文件、未准备提交的更改和要提交的更改,并且每种状态都可以随意转换为另一种状态。了解这三种状态的不同情况,可以帮助你使用Git方便有效地管理项目。