在項目中,我們可能會遇到一些不需要被 git 追蹤的文件,比如編譯生成的二進制文件、日志文件以及臨時文件等。此時,git 提供了一種忽略文件的方法,可以忽略這些文件,不對其進行版本管理。
在 Git 中,忽略文件采用的是 .gitignore 文件,可以告訴 Git 忽略哪些文件或目錄不被追蹤到版本歷史中。在這篇文章中,我們將介紹 Git 如何忽略文件。
一、創建 .gitignore 文件
創建 .gitignore 文件很簡單,只需要在項目根目錄中創建一個名字為 .gitignore 的文件即可。需要注意的是,.gitignore 文件的內容必須按照 Git 的規則進行設置。下面是一個 .gitignore 文件的示例:
# 忽略所有 .a 文件 *.a # 但是 lib.a 文件除外 !lib.a # 僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODO /TODO # 忽略 build/ 目錄下的所有文件 build/ # 忽略 doc/notes.txt 文件,但不包括 doc/server/arch.txt 文件 doc/*.txt # 忽略所有 .pdf 文件在 doc/ 目錄下以及子目錄下 doc/**/*.pdf
在上述示例中,我們可以看到多種設置忽略文件的方式。其中,第一行的 *.a 表示忽略所有的 .a 文件,!lib.a 表示不忽略 lib.a 文件。/TODO 表示忽略項目根目錄下的 TODO 文件,但不包括子目錄下的 TODO 文件。build/ 表示忽略 build/ 目錄下的所有文件,doc/*.txt 表示忽略 doc/ 目錄下的所有 .txt 文件,doc/**/*.pdf 表示忽略 doc/ 目錄下以及子目錄下的所有 .pdf 文件。在 .gitignore 文件中,我們還可以使用 # 號表示注釋,和 ! 號取消忽略。
二、忽略已經提交的文件
在項目中,有時候我們需要對某些文件進行忽略,但是這些文件已經提交到了 Git 中。此時,如果我們修改了 .gitignore 文件中的內容,這些文件仍然會被追蹤到版本歷史中。因此,如果某些已經提交的文件需要忽略,我們需要使用 git rm –cached 命令來從 Git 中刪除這些文件的記錄。
例如,如果我們需要忽略 README.md 文件,但是這個文件已經在 Git 中被追蹤到了版本歷史中,那么我們可以使用如下命令:
git rm --cached README.md
執行完這個命令后,README.md 文件不會被從本地文件系統中刪除,只是從 Git 的版本庫中刪除。此時,我們再將 README.md 文件添加到 .gitignore 中,就可以成功忽略這個文件了。
三、忽略文件夾
在 Git 中,我們不僅可以忽略某個文件,還可以忽略一個文件夾。例如,如果我們需要忽略 build/ 文件夾,那么我們可以在 .gitignore 文件中添加如下內容:
build/
這樣,所有 build/ 文件夾中的文件都會被忽略,不會被 Git 追蹤到版本歷史中。
四、總結
在開發項目中,忽略文件是一個常見的需求。Git 提供了 .gitignore 文件來幫助我們忽略不需要被追蹤的文件。通過 .gitignore 文件,我們可以設置忽略文件的規則,忽略某些文件或文件夾,不對其進行版本管理。如果需要忽略已經提交到 Git 中的文件,我們需要使用 git rm –cached 命令來刪除這些文件的記錄。對于項目中的文件管理,忽略文件的設置是非常有用的技巧。