Git簡明教程 4 檔案新增和版本提交到本地倉庫

2021-08-17 19:26:10 字數 2911 閱讀 3075

首先要了解的是,所有新建立或新增到工作目錄(working dirctory)的檔案,都是未被跟蹤的,也就是說此時git認為他們並不是自己所管理的檔案

我們在git倉庫中新建乙個檔案,然後使用git status命令,可以要確定哪些檔案當前處於什麼狀態。

可以看到此時新建檔案並沒有被git追蹤(untracked)

git add filename
我們需要使用以上命令將檔案新增到git的暫存區(staging area),這時候檔案就開始被git追蹤,也就是說檔案以後的變化會被git發現並指出,檔案也就可以被儲存到git版本庫中(以快照的形式)。

可以看到此時新建的檔案已經被追蹤(未被提交狀態)

也就是說,git add命令將檔案新增進了暫存區後,檔案就已經被git追蹤了。

已經被git追蹤的檔案,我們就可以檢視它在git內部的狀態

可以看到我新建了檔案newfile2,然後使用git add命令將其新增進暫存區,此時git已經對其開始追蹤,然後再使用git status檢視檔案狀態,發現它處於修改(modified)狀態。

使用git status命令檢視檔案狀態,發現有修改後沒有存入暫存區的檔案(也就是說工作目錄和暫存區存在不一致檔案)

我們可以使用git add filename將更新後的檔案新增進暫存區

現在的暫存區域已經準備妥當可以提交了。在此之前,請一定要確認還有什麼修改過的或新建的檔案還沒有git add過,否則提交的時候不會記錄這些還沒暫存起來的變化。所以,每次準備提交前,先用git status看下,是不是都已暫存起來了,然後再執行提交命令git commit

$ git commit
這種方式會啟動文字編輯器以便輸入本次提交的說明。缺省會啟用shell的環境變數$editor所指定的軟體,一般都是 vim 或 emacs。

可以看到,預設的提交訊息包含最後一次執行git status的輸出,放在注釋行裡,另外開頭還有一空行,供你輸入提交說明。你完全可以去掉這些注釋行,不過留著也沒關係,多少能幫你回想起這次更新的內容有哪些。(如果覺得這還不夠,可以用 -v 選項將修改差異的每一行都包含到注釋中來。)退出編輯器時,git 會丟掉注釋行,將說明內容和本次更新提交到倉庫。

另外也可以用-m引數後跟提交說明的方式,在一行命令中提交更新:

記住,提交時記錄的是放在暫存區域的快照,任何還未暫存的仍然保持已修改狀態,可以在下次提交時納入版本管理。每一次執行提交操作,都是對你專案作一次快照,以後可以回到這個狀態,或者進行比較。

使用git commit命令以後,git就會把暫存區的檔案全部提交到git版本倉庫(repository)

我們使用:

git log
可以檢視commit以後的版本更新資訊

可以看到commit -m的資訊被記錄下來,其中包括版本快照的校驗和,發布者資訊和提交更新的時間。

最後我想補充一下git中快照儲存模型(看不懂也沒關係,不影響git的使用)

當使用git commit新建乙個提交物件前,git 會先計算每乙個子目錄(本例中就是專案根目錄)的校驗和,然後在 git 倉庫中將這些目錄儲存為樹(tree)物件。之後 git 建立的提交物件,除了包含相關提交資訊以外,還包含著指向這個樹物件(專案根目錄)的指標,如此它就可以在將來需要的時候,重現此次快照的內容了。

我們在git log中看到的e27……就是指向樹物件(tree)的乙個版本快照物件(commit)的校驗和,而版本中每個檔案(目錄)也會被記錄成乙個blob物件然後樹物件(tree)的指標指向這些物件,實現檔案的快照儲存。

Git簡明教程二 開始進行版本管理

安裝git後,請先在你的電腦上新建或選擇乙個目錄作為測試用,本教程大部分操作都將在該目錄下完成。另外,我們的操作都是在命令列下完成的,如果你用的是windows,可以通過右鍵選單開啟git bash這個git命令列環境 在資源管理器中進入該目錄,點選右鍵,在右鍵選單中點選 git bash 即可開啟...

分布式版本控制系統Git簡明教程(二)

git是目前世界上最先進的開源分布式版本控制系統。對於所建立的版本庫中一切文字檔案,網頁,程式 等發生的任何改動都會自動記錄下來,例如當某次改動導致程式錯誤時可以回退至上乙個改動前的版本,也方便了多人協作開發時每個成員都可以得到其他成員對專案的改動資訊。而git作為分布式版本控制系統,每個人的計算機...

mq4檔案和ex4檔案的區別?

mq4檔案和ex4檔案的區別?一 mt4自定義指標儲存在c program files metatrader 4 experts indicators這個目錄中,該目錄中主要有二種型別的檔案,mq4檔案和ex4檔案。mq4檔案是mt4自定義指標的原始碼檔案,是一種高階語言檔案,可以人工編寫修改,機器...