.gitignore 這個文件的作用就是告訴Git哪些文件不需要添加到版本管理中。實際項目中,很多文件都是不需要版本管理的,比如Python的.pyc文件,Git會根據這個文件里配置的這些規則來判斷是否將文件添加到版本控制中。
注意,直接新建文件后,重命名為.gitignore是行不通的,windows不讓,必須通過另存為的方式設置為.gitignore文件
常用的規則:
1)/mtk/ 過濾整個文件夾
2)*.zip 過濾所有.zip文件
3)/mtk/do.c 過濾某個具體文件
還可以通過 ! 指定要將哪些文件添加到版本管理中
1)!*.zip
2)!/mtk/one.txt
一個場景:假如我們只需要管理/mtk/目錄中的one.txt文件,這個目錄中的其他文件都不需要管理,那么我們就需要使用:
1)/mtk/
2)!/mtk/one.txt
規則配置語法:
以斜杠“/”開頭表示目錄;
以星號“*”通配多個字符;
以問號“?”通配單個字符
以方括號“[]”包含單個字符的匹配列表;
以嘆號“!”表示不忽略(跟蹤)匹配到的文件或目錄;
此外,git 對于 .ignore 配置文件是按行從上到下進行規則匹配的
2)示例說明
fd1/*
說明:忽略目錄 fd1 下的全部內容;注意,不管是fd1在哪;
/fd1/*
說明:忽略根目錄下的 /fd1/ 目錄的全部內容;
/*
!.gitignore
!/fw/bin/
!/fw/sf/
說明:忽略全部內容,但是不忽略 .gitignore 文件、根目錄下的 /fw/bin/ 和 /fw/sf/ 目錄;
monitor/__pycache__/*.pyc
說明:忽略文件 monitor/__pycache__/目錄下的.pyc文件
注意:
.gitignore只能忽略那些原來沒有被track的文件(也就是那些從來沒有被 Git 記錄過的文件--自添加以后,從未被 add 及 commit 過的文件),如果某些文件已經被納入了版本管理中,默認情況下,.gitignore對這些文件是不起作用的。
解決方法:先把本地緩存刪除(改變成未track狀態),然后再提交:
1、git rm -r --cached .
2、git add .
3、git commit -m 'comment'
注意:
進入到目標目錄
實例:
E:\mygit\others>cd E:\mygit\others\monitor
E:\mygit\others\monitor>git rm -r --cached .
rm 'monitor/.idea/.name'
rm 'monitor/.idea/encodings.xml'
rm 'monitor/.idea/misc.xml'
rm 'monitor/.idea/modules.xml'
rm 'monitor/.idea/monitor.iml'
rm 'monitor/.idea/oneKeyUPDownload.iml'
……
E:\mygit\others\monitor>git add .
E:\mygit\others\monitor>git commit -m 'updategitignore'
[master 8d4db51] 'updategitignore'
30 files changed, 55393 insertions(+), 56636 deletions(-)
create mode 100644 monitor/.gitignore
delete mode 100644 monitor/.idea/.name
delete mode 100644 monitor/.idea/encodings.xml
……
?