分類  >  Web前端 >

Git中三種文件狀態及其變換

tags:    時間:2013-12-10 09:58:38
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來管理項目。

 

(完)

 

推薦閱讀文章

Bookmark the permalink ,來源:互聯網