天天看點

git 忽略特殊檔案.gitignore的使用

⚡️ 為什麼要忽略這些檔案

有些時候,你必須把某些檔案放到Git工作目錄中,但又不能送出它們,比如儲存了資料庫密碼的配置檔案啦,等等,每次git status都會顯示Untracked files …,如果你上傳到Git中去其他人pull下來的時候就會和他本地的配置有沖突,是以這樣的配置檔案我們一般不把它推送到git伺服器中,但是又為了偷懶每次添加緩存的時候都想用git add .而不是手動一個一個檔案添加,該怎麼辦呢?很簡單,git為我們提供了一個.gitignore檔案隻要在這個檔案中申明那些檔案你不希望添加到git中去,這樣當你使用git add .的時候這些檔案就會被自動忽略掉。

? 忽略檔案的原則

  • 忽略作業系統自動生成的檔案,比如縮略圖等;
  • 忽略編譯生成的中間檔案、可執行檔案等,也就是如果一個檔案是通過另一個檔案自動生成的,那自動生成的檔案就沒必要放進版本庫,比如Java編譯産生的.class檔案;
  • 忽略你自己的帶有敏感資訊的配置檔案,比如存放密碼的配置檔案。

⭐️ 使用方法

首先,在你的工作區建立一個名稱為.gitignore的檔案,也就是和.git檔案夾在同一級目錄建立一個.gitignore的檔案

然後,把要忽略的檔案名填進去,Git就會自動忽略這些檔案。

? 忽略規則檔案文法

  • 忽略指定檔案或目錄
# 忽略指定檔案
HelloWrold.class

# 忽略指定檔案夾
bin/
bin/gen/
           
  • 通配符忽略規則
# 忽略.class的所有檔案
*.class

# 忽略名稱中末尾為ignore的檔案夾
*ignore/

# 忽略名稱中間包含ignore的檔案夾
*ignore*/
           

? 栗子

這是我的工作區,在這裡建立一個.gitignore的檔案

git 忽略特殊檔案.gitignore的使用

我的.gitignore檔案是這樣寫的

git 忽略特殊檔案.gitignore的使用

它會忽略掉這個本地倉庫中的

  1. .DS_Store檔案
  2. 目錄BookSystem/out/中的檔案
  3. 目錄BookSystem/.idea/中的檔案

也就是,這幾個紅框框裡的檔案會全部被忽略

git 忽略特殊檔案.gitignore的使用

⛳️ 檢視gitignore規則

如果你感覺.gitignore寫得有問題,需要找出來到底哪個規則寫錯了,可以用git check-ignore指令檢查:

git 忽略特殊檔案.gitignore的使用

可以看到它比對到了,如果沒有比對到,它就不會傳回任何消息了?

❗️遇到的問題及解決方法

還有一種情況是.gitignore檔案本身并沒有錯,但就是無法生效,這時清空一下git的緩存然後add . 試試,我就是這樣解決的,如果還是不行,我也無能為力了…

git rm -r --cached .
add .

           

參考連結1

參考連結2