1. 程式人生 > >Git入門指南四:跟蹤新檔案和忽略某些檔案

Git入門指南四:跟蹤新檔案和忽略某些檔案

六. 跟蹤新檔案 git add


檔案test2已被跟蹤,並處於暫存狀態

git add 後面可以指明要跟蹤的檔案或目錄路徑。如果是目錄的話,就說明要遞迴跟蹤該目錄下的所有檔案。

git add 的潛臺詞就是把目標檔案快照放入暫存區域,也就是 add file into staged area,同時未曾跟蹤過的檔案標記為需要跟蹤。

暫存已修改的檔案

#先修改已存在的檔案test.txt 然後檢視檔案狀態


可以看到 Changes not staged for commit,即已修改但沒有暫存的檔案test.txt

#加入暫存,檢視檔案狀態


可以看出一個修改的檔案和一個新檔案

git add 這是個多功能命令,根據目標檔案的狀態不同,此命令的效果也不同:可以用它開始跟蹤新檔案,或者把已跟蹤的檔案放到暫存區,還能用於合併時把有衝突的檔案標記為已解決狀態等

注意: 每次修改檔案都需要暫存再提交

七. 忽略某些檔案

一般我們總會有些檔案無需納入 Git 的管理,也不希望它們總出現在未跟蹤檔案列表。通常都是些自動生成的檔案,比如日誌檔案,或者編譯過程中建立的臨時檔案等。

#專案中建立一個檔案.gitignore


說明:

第一行告訴 Git 忽略所有以 .o 或 .a 結尾的檔案。一般這類物件檔案和存檔檔案都是編譯過程中出現的,我們用不著跟蹤它們的版本。

第二行告訴 Git 忽略所有以波浪符(~)結尾的檔案,許多文字編輯軟體(比如 Emacs)都用這樣的檔名儲存副本。

#測試一下.a和.o檔案


#新建個.log的檔案是ok的


檔案 .gitignore 的格式規範如下:

1. 所有空行或者以註釋符號 # 開頭的行都會被 Git 忽略。
2. 可以使用標準的 glob 模式匹配。
3. 匹配模式最後跟反斜槓(/)說明要忽略的是目錄。
4. 要忽略指定模式以外的檔案或目錄,可以在模式前加上驚歎號(!)取反。
5. 所謂的 glob 模式是指 shell 所使用的簡化了的正則表示式。
6. 星號(*)匹配零個或多個任意字元;[abc]匹配任何一個列在方括號中的字元(這個例子要麼匹配一個 a,要麼匹配一個 b,要麼匹配一個 c);問號(?)只匹配一個任意字元;如果在方括號中使用短劃線分隔兩個字元,表示所有在這兩個字元範圍內的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的數字)。

.gitignore 檔案的例子:


# 此為註釋 – 將被 Git 忽略
# 忽略所有 .a 結尾的檔案
*.a
# 但 lib.a 除外!lib.a
# 僅僅忽略專案根目錄下的 TODO 檔案,不包括 subdir
/TODO/TODO
# 忽略 build/ 目錄下的所有檔案
build/
# 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt

微信公眾帳號: wirelessqa

wirelessqa

關於作者: