git基礎(3)--記錄每次更新到倉庫

工作目錄下的每一個文件都不外乎這兩種狀態:已跟蹤或未跟蹤。

1)已跟蹤或未跟蹤。 已跟蹤的文件是指那些被納入了版本控制的文件,在上一次快照中有它們的記錄,在工作一段時間後,它們的狀態可能處於未修改,已修改或已放入暫存區。

2)工作目錄中除已跟蹤文件以外的所有其它文件都屬於未跟蹤文件,它們既不存在於上次快照的記錄中,也沒有放入暫存區。

 

1、檢查當前文件狀態

查看哪些文件處於什麼狀態

git status

該命令還顯示了當前所在分支,並告訴你這個分支同遠程服務器上對應的分支沒有偏離。

 

2、跟蹤新文件

使用命令 git add 開始跟蹤一個文件。 

git add test.txt 

// 1、新建test.txt時,文件處於未跟蹤狀態 

// 2、執行add後文件變爲已經暫存狀態 

// 以上各階段可以通過git status去獲取

git add 命令使用文件或目錄的路徑作爲參數;如果參數是目錄的路徑,該命令將遞歸地跟蹤該目錄下的所有文件。

 

3、暫存已修改文件

已跟蹤文件的內容發生了變化,但還沒有放到暫存區。 要暫存這次更新,需要運行 git add 命令。

注:同一個文件修改一次執行git add後會進入暫存區,然後再修改,執行git status後,會同時在暫存區和未暫存區,此時如果執行git commit只提交第一次git add後的版本,工作目錄中的修改不會提交。

 

4、狀態簡覽

得到一種更爲緊湊的格式輸出

git status -s  
git status --short

1)新添加的未跟蹤文件前面有 ?? 標記

2)新添加到暫存區中的文件前面有 A 標記

3)修改過的文件前面有 M 標記

4)M 有兩個可以出現的位置,出現在右邊的 M 表示該文件被修改了但是還沒放入暫存區,出現在靠左邊的 M 表示該文件被修改了並放入了暫存區。

 

5、忽略文件

我們總會有些文件無需納入 Git 的管理,也不希望它們總出現在未跟蹤文件列表。在這種情況下,我們可以創建一個名爲 .gitignore 的文件,列出要忽略的文件模式。

文件 .gitignore 的格式規範如下:

  • 所有空行或者以 # 開頭的行都會被 Git 忽略。
  • 可以使用標準的 glob 模式匹配。
  • 匹配模式可以以(/)開頭防止遞歸。
  • 匹配模式可以以(/)結尾指定目錄。
  • 要忽略指定模式以外的文件或目錄,可以在模式前加上驚歎號(!)取反。

glob 模式是指 shell 所使用的簡化了的正則表達式

  • 星號(*)匹配零個或多個任意字符
  • [abc]匹配任何一個列在方括號中的字符
  • 問號(?)只匹配一個任意字符、
  • 如果在方括號中使用短劃線分隔兩個字符,表示所有在這兩個字符範圍內的都可以匹配
  • 使用兩個星號(*) 表示匹配任意中間目錄

 

6、查看已暫存和未暫存的修改

1)要查看尚未暫存的文件更新了哪些部分,不加參數直接輸入 git diff

git diff

此命令比較的是工作目錄中當前文件和暫存區域快照之間的差異, 也就是修改之後還沒有暫存起來的變化內容。

2)查看已暫存的將要添加到下次提交裏的內容,可以用 git diff --cached 命令(1.6.1 及更高版本還允許使用 git diff --staged,效果是相同的,但更好記些)

git diff --staged

git diff 本身只顯示尚未暫存的改動,而不是自上次提交以來所做的所有改動。

 

7、提交更新

git commit

commit 命令後添加 -m 選項,將提交信息與命令放在同一行

git commit -m "project init"

1)提交後它會告訴你,當前是在哪個分支提交

2)本次提交的完整 SHA-1 校驗和是什麼

3)本次提交中,有多少文件修訂過,多少行添加和刪改過

 

8、跳過使用暫存區域

git commit 加上 -a 選項,Git 就會自動把所有已經跟蹤過的文件暫存起來一併提交,從而跳過 git add 步驟

git commit -a -m '追加新的修改信息'

 

9、移除文件

1)從 Git 中移除某個文件,就必須要從已跟蹤文件清單中移除(確切地說,是從暫存區域移除),然後提交。

可以用 git rm 命令完成此項工作,並連帶從工作目錄中刪除指定的文件,這樣以後就不會出現在未跟蹤文件清單中了。

rm test.txt 
git rm test.txt 
// 執行以上兩步,下一次提交時,該文件就不再納入版本管理了。

 如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f

2)我們想把文件從 Git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中(不想讓 Git 繼續跟蹤)。

git rm --cached README

git rm 命令後面可以列出文件或者目錄的名字,也可以使用 glob 模式。

 

10、移動文件

git mv file_from file_to

運行 git mv 就相當於運行了下面三條命令:

mv README.md README 
git rm README.md 
git add README

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章