在項目開發中,有時候我們并不需要git跟蹤所有文件,而是需要忽略掉某些指定的文件或文件夾,怎么操作呢?我們分兩種情況討論:
1. 要忽略的文件之前并未被git跟蹤
? ? ?這種情況常用的方法是在項目的根目錄下創建和編輯.gitignore文件(即和.git文件夾同級)。使用記事本打開這個文件并編輯,添加你想要忽略的文件或文件夾的相對路徑到.gitignore文件中,每個路徑占一行。規則如下:
- ?使用斜杠(/)指定文件夾路徑,如
/path/to/folder/
- ?使用星號(*)匹配任意字符,如
*.txt
。 - ?使用嘆號(!)表示排除某些文件或文件夾,如
!/lib/file.txt
注意:.gitignore文件并不是后綴為txt的文本文檔,它的類型是txtfile!只是使用記事本編輯內容
這種文件的新建方式是,在界面空白處右鍵,點擊新建——文本文檔——命名時把文件擴展名.txt刪掉,只輸入名字.gitignore
這個地方千萬不能理解錯!在Git中,忽略文件必須命名為.gitignore
而不是.gitignore.txt
。如果創建了一個名為.gitignore.txt
的文件,Git不會識別它作為忽略規則文件,而是視為一個普通的文本文檔,那自然也不會識別里面的內容,就無法起到忽略該文件中列出的文件的作用。
再使用git add命令將這個文件添加到git中,使用git commit? -m'修改說明'提交修改
如果你和我一樣使用git add? .gitignore 命令添加該文件到git時,報錯:
fatal: pathspec '.gitignore' did not match any files
那么還有一種創建忽略文件的方式,不需要再手動添加忽略文件到git,那就是在git界面運行如下指令
touch .gitignore
運行完這條指令以后,當前根目錄會自動創建忽略文件,并且無需手動添加
再提交修改
我們可以看到,忽略文件中列出的文件和文件夾都沒有出現在git 管理的列表中(忽略的意思是git不關心這個文件的任何狀態,這個地方一定要理解到位,Untracked files中列出的是git在管理但是未追蹤的),說明我們的目的達成了。
2. 忽略已經跟蹤的文件
如果文件已經被Git跟蹤,那么即使它們被添加到了.gitignore
文件中,Git仍然會繼續跟蹤這些文件。要停止對這些文件的跟蹤,你需要先從版本庫中移除這些文件,然后再添加到.gitignore
文件
git rm --cached example.txt