Git跟蹤與提交檔案

admin發表於2018-07-11

Git建立Repository版本庫一章節介紹如何建立一個版本庫。

本章節介紹一下Git對檔案管控的基本流程,首先我們建立一個空目錄並將其初始化:

[Shell] 純文字檢視 複製程式碼
$ cd /e #切換到E盤。
$ mkdir git-ant # 在E盤下建立git-ant目錄。
$ cd git-ant # 切換到此目錄。
$ git init # 初始化當前目錄,那麼其中的檔案就可以得到有效管控。
Initialized empty Git repository in E:/git-ant/git-ant/.git/

程式碼在E盤建立目錄git-ant,並將其初始化,建立空版本庫,除了預設隱藏.git目錄,別無它物。

一.git status指令:

此指令可以查詢當前目錄下檔案的狀態:

[Shell] 純文字檢視 複製程式碼
$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

當前目錄除.git外沒有其他東西,所以執行此命令之後,沒有任何檔案新增、提交或者刪除等資訊。

特別說明:在我們建立版本庫時,系統會為我們自動建立一個master分支。

下面在當前目錄新增一個名為readme.txt檔案,通過編輯器或者命令列都可以:

[Shell] 純文字檢視 複製程式碼
$ echo "螞蟻部落" > readme.txt

上面建立readme.txt檔案,並寫入字串"螞蟻部落"。

特別說明:如果使用編輯器建立,windows系統不推薦使用記事本建立檔案,它特有的對utf-8格式檔案處理方式可能會導致問題,推薦notepad++,把Notepad++的預設編碼設定為UTF-8 without BOM,圖示如下:

a:3:{s:3:\"pic\";s:43:\"portal/201807/11/142859da2zz66lacycndsq.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

現在執行git status命令:

[Shell] 純文字檢視 複製程式碼
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        readme.txt

nothing added to commit but untracked files present (use "git add" to track)

新增readme.txt檔案處於Untracked狀態,也就是說Git已經感知到檔案的存在,但是還沒有跟蹤它。

二.git add指令:

通過git add命令可以跟蹤一個檔案,程式碼如下:

[Shell] 純文字檢視 複製程式碼
$ git add readme.txt

readme.txt檔案被納入跟蹤,將其從工作區提交到了暫存區,暫存區也可以稱為索引(index)。

特別說明:點選回車執行此命令成功,通常下面不會出現反饋資訊。

再來看它的狀態:

[Shell] 純文字檢視 複製程式碼
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   readme.txt

分析如下:

(1).On branch master:表示當前位於master分支。

(2).No commits yet:表示至今還沒有任何提交。

(3).Changes to be committed:表示已經有新的修改被提交到暫存區,可以被提交到儲存庫中了。

(4).檔案由原來的Untracked狀態轉換為new file狀態。

三.git commit指令:

僅將檔案從工作區提交到暫存區是不夠的,一個完整的流程還沒有走完,如果想讓暫存區的內容可以永久安全的儲存下來,需要將其提交到倉庫中存檔,git commit指令即可完成此工作。

[Shell] 純文字檢視 複製程式碼
$ git commit -m "螞蟻部落第一次提交"
[master (root-commit) 961b2f7] 螞蟻部落第一次提交
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt

指令解析如下:

(1).-m表示對此次提交進行註釋,簡述此題提交的相關資訊。

(2).如果不加-m,那麼在點選回車之後,會預設彈出自帶的VIM編輯器,然後輸入提交資訊。

關於VIM編輯器的基本用法可以參閱git Vim編輯器輸入內容、儲存和退出操作一章節。

上述三步,將檔案從工作區提交到暫存區,最會提交到倉庫,完成一次完整的提交過程,也就是進行了一次存檔。

現在再來看執行git status看一下狀態:

[Shell] 純文字檢視 複製程式碼
$ git status
On branch master
nothing to commit, working tree clean

暫存區和工作區都是乾淨的。 

相關文章