Git檔案3種狀態

2021-07-11 22:53:18 字數 1373 閱讀 3847

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 …」的命令將檔案包含到待提交清單中。按照提示,使用「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來管理專案。

Git中檔案的4種狀態

untracked 未跟蹤,此檔案在資料夾中,但並沒有加入到git庫,不參與版本控制.通過git add 狀態變為staged.unmodify 檔案已經入庫,未修改,即版本庫中的檔案快照內容與資料夾中完全一致.這種型別的檔案有兩種去處,如果它被修改,而變為modified.如果使用git rm移出...

Git之檔案的四種狀態

1.首先執行git status 檢視倉庫狀態,應該如下 2.建立乙個檔案star.txt,此時在檢視檔案狀態應該是untracked 未跟蹤 3.此時我們也可以修改檔案同樣是未跟蹤狀態,然後我們進行git add 操作,再次檢視應該是staged暫存狀態 提示可以提交了 4.我們執行git com...

Git 三種狀態

在git 內都只有三種狀態 已提交 committed 已修改 modified 和已暫存 staged 已提交表示該檔案已經被安全地儲存在本地資料 庫中了 已修改表示修改了某個檔案,但還沒有提交儲存 已暫存表示把已修改的檔案放在下次提交時要儲存 的清單中。由此我們看到git 管理專案時,檔案流轉的...