欢迎来到天天文库
浏览记录
ID:40490151
大小:45.54 KB
页数:12页
时间:2019-08-03
《Git入门书籍 Pro Git 书籍系列 6》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2.2Git基础-记录每次更新到仓库记录每次更新到仓库现在我们手上已经有了一个真实项目的Git仓库,并从这个仓库中取出了所有文件的工作拷贝。接下来,对这些文件作些修改,在完成了一个阶段的目标之后,提交本次更新到仓库。请记住,工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。而所有其他文件都属于未跟踪文件。它们既没有上次更新时的快照,也不在当前的暂存区域。初次克隆某个仓库时,
2、工作目录中的所有文件都属于已跟踪文件,且状态为未修改。在编辑过某些文件之后,Git将这些文件标为已修改。我们逐步把这些修改过的文件放到暂存区域,直到最后一次性提交所有这些暂存起来的文件,如此重复。所以使用Git时的文件状态变化周期如图2-1所示。图2-1.文件的状态变化周期检查当前文件状态要确定哪些文件当前处于什么状态,可以用gitstatus命令。如果在克隆仓库之后立即执行此命令,会看到类似这样的输出:$gitstatusOnbranchmasternothingtocommit,workingdirectoryc
3、lean这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪的新文件,否则Git会在这里列出来。最后,该命令还显示了当前所在的分支是master,这是默认的分支名称,实际是可以修改的,现在先不用考虑。下一章我们就会详细讨论分支和引用。现在让我们用vim创建一个新文件README,保存退出后运行gitstatus会看到该文件出现在未跟踪文件列表中:$vimREADME$gitstatusOnbranchmasterUntrackedf
4、iles:(use"gitadd..."toincludeinwhatwillbecommitted)READMEnothingaddedtocommitbutuntrackedfilespresent(use"gitadd"totrack)在状态报告中可以看到新建的README文件出现在“Untrackedfiles”下面。未跟踪的文件意味着Git在之前的快照(提交)中没有这些文件;Git不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪该文件”,因而不用担心把临时文件什么的也归入版本管理。不
5、过现在的例子中,我们确实想要跟踪管理README这个文件。跟踪新文件使用命令gitadd开始跟踪一个新文件。所以,要跟踪README文件,运行:$gitaddREADME此时再运行gitstatus命令,会看到README文件已被跟踪,并处于暂存状态:$gitstatusOnbranchmasterChangestobecommitted:(use"gitresetHEAD..."tounstage)newfile:README只要在“Changestobecommitted”这行下面的,就说明是已暂存状
6、态。如果此时提交,那么该文件此时此刻的版本将被留存在历史记录中。你可能会想起之前我们使用gitinit后就运行了gitadd命令,开始跟踪当前目录下的文件。在gitadd后面可以指明要跟踪的文件或目录路径。如果是目录的话,就说明要递归跟踪该目录下的所有文件。(译注:其实gitadd的潜台词就是把目标文件快照放入暂存区域,也就是addfileintostagedarea,同时未曾跟踪过的文件标记为需要跟踪。这样就好理解后续add操作的实际意义了。)暂存已修改文件现在我们修改下之前已跟踪过的文件benchmarks.rb
7、,然后再次运行status命令,会看到这样的状态报告:$gitstatusOnbranchmasterChangestobecommitted:(use"gitresetHEAD..."tounstage)newfile:READMEChangesnotstagedforcommit:(use"gitadd..."toupdatewhatwillbecommitted)(use"gitcheckout--..."todiscardchangesinworkingdirectory)
8、modified:benchmarks.rb文件benchmarks.rb出现在“Changesnotstagedforcommit”这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。要暂存这次更新,需要运行gitadd命令(这是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到
此文档下载收益归作者所有