⚡️ 為什麼要忽略這些檔案
有些時候,你必須把某些檔案放到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的檔案
我的.gitignore檔案是這樣寫的
它會忽略掉這個本地倉庫中的
- .DS_Store檔案
- 目錄BookSystem/out/中的檔案
- 目錄BookSystem/.idea/中的檔案
也就是,這幾個紅框框裡的檔案會全部被忽略
⛳️ 檢視gitignore規則
如果你感覺.gitignore寫得有問題,需要找出來到底哪個規則寫錯了,可以用git check-ignore指令檢查:
可以看到它比對到了,如果沒有比對到,它就不會傳回任何消息了?
❗️遇到的問題及解決方法
還有一種情況是.gitignore檔案本身并沒有錯,但就是無法生效,這時清空一下git的緩存然後add . 試試,我就是這樣解決的,如果還是不行,我也無能為力了…
git rm -r --cached .
add .
參考連結1
參考連結2