.gitignore
/doc/
過濾整個文件夾。
*.zip
過濾所有.zip文件。
/doc/info.txt
過濾某個具體的文件。
這樣,push的時候,就不會上傳了,git倉庫中就沒有了。
假如我們只需要管理/mtk/目錄中的one.txt文件,這個目錄中的其他文件都不需要管理,那么我們就需要使用:
/mtk/
!/mtk/one.txt
忽略文件的原則是:
a.忽略操作系統自動生成的文件,比如縮略圖等;
b.忽略編譯生成的中間文件、可執行文件等,也就是如果一個文件是通過另一個文件自動生成的,那自動生成的文件就沒必要放進版本庫,比如Java編譯產生的.class文件;
c.忽略你自己的帶有敏感信息的配置文件,比如存放口令的配置文件。
舉個栗子:
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
再看一個案例
# Created by .ignore support plugin
# Logs 日志文件
*.log
# Runtime 緩存文件
Admin/Runtime
Api/Runtime
Cron/Runtime
# config 配置文件
Admin/Conf/config.php
Api/Conf/config.php
Cron/Conf/config.php
# upload 圖片文件
Public/site_upload
# vendor 插件文件
vendor
!vendor/composer
!vendor/autoload.php
!vendor/bin
# other 編輯器產生的文件
.idea/
.DS_Store
.buildpath
.project
不得不說,phpstorm的ignore提示的很到位。
.gitignore規則不生效
.gitignore只能忽略那些原來沒有被track的文件,如果某些文件已經被納入了版本管理中,則修改.gitignore是無效的。
解決方法就是先把本地緩存刪除(改變成未track狀態),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'