.gitignore 文件用法

在這裏插入圖片描述
Git是跟蹤項目中所有文件的好工具,但是,您會希望在項目的整個生命週期中不要跟蹤某些文件及其變更。例如:

  • 系統文件(i.e. Mac系統的.Ds_Store)
  • 應用程序配置文件(i.e. app.config, .env)
  • 構建組件(i.e. *.pyc)
  • 安裝的依賴(i.e. node_modules)
  • 個人文件(i.e. todo.txt)
  • 應用程序數據和日誌(i.e. .log,.sqlite)

Git 中 gitignore 概念:以.gitignore文件定義哪些文件將被 Git 排除跟蹤, 被.gitignore匹配到的文件將不會顯示在 Git 的Untracked files列表。

使用.gitignore防止跟蹤文件

.gitignore文件控制 Git 倉庫中應排除跟蹤的文件(可由文件類型、路徑、通配符等確立)。你和你的團隊可以隨時更新這個文件來控制忽略哪種類型的文件。

創建.gitignore文件

  • Visual Studio
    使用VS爲項目創建(或連接)代碼倉庫時,Visual Studio 自動在倉庫中創建.gitignore文件。
  • 下載.gitignore模板
    從 https://github.com/github/gitignore 下載特定項目類型的`.gitignore文件模板,修改以充分適配你的項目。

Git 將.gitignore應用於文件夾及其子文件夾,建議您將.gitignore放在存儲庫的根文件夾中,以免造成混淆。

實踐中有時會在項目子目錄嵌套定義.gitignore文件, 雖然不常見,但對於有特定規則的子目錄,嵌套定義.gitignore文件有用。

自定義.gitignore

只要你修改了.gitignore文件,Git 立即開始忽略這些文件;如果你希望團隊成員都忽略相同的文件,請提交這次 git 變更。
.gitignore 中的每一行都排除一個文件或一組(與模式匹配的)文件, .gitignore語法很靈活:

# ignore a single file
mycode.class

# ignore an entire directory
/mydebugdir/

# ignore a file type
*.json

# add an exception (using !) to the preceding rule to track a specific file
!package.json

Windows 使用者注意:.gitignore 文件中的路徑使用正斜槓分隔符,而不是反斜槓

忽略已提交文件中的變化

臨時忽略變更

在開發階段,有時候需要臨時忽略本地倉庫中已提交的文件的變更。例如,你的配置文件與本機的工作環境或者項目配置有關,那麼這個操作就非常有用:

git update-index --skip-worktree <file>

當然也可以恢復文件的追蹤:

git update-index --no-skip-worktree <file>

也可以通過以下方式進行。這主要是爲了防止文件被開發者修改。
關閉變更追蹤:

git update-index --assume-unchanged <file>

恢復變更追蹤:

git update-index --no-assume-unchanged <file>

永久忽略文件變更

如果一個文件已經被 Git 跟蹤,那麼再將這個文件添加到 .gitignore並不會忽略文件變更。你還需要從Git 暫存區(index)中移除這個文件的信息,步驟如下:

  1. .gitignore中添加這個文件
  2. 從暫存區移除文件信息:
git rm --cached  <file>
  1. 提交刪除文件和更新的.gitignore到您的倉庫

注:以上步驟不會從系統中刪除文件,只是告訴Git以後忽略該文件的變更

僅在個人系統中忽略文件

.gitignore文件被提交併推送之後,就會在團隊共享。若只想在你的系統上排除文件,請編輯本地倉庫中的.git/info/exclude文件, 修改這個文件不會共享給其他人,這個動作只對此本地倉庫有效。

在個人系統中忽略所有倉庫的特定文件

利用git config命令建立全局.gitignore文件:

git config core.excludesfile C:\Users\frank\.gitignore_global

這個命令幫助你忽略所有的絕不會提交的文件類型,比如編譯文件。

參考文獻

[1] Ignore file changes with Git

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