1.需求:
項目中如日志,臨時文件,編譯的中間文件等不想提交到代碼倉庫,
2.方案:
這時就要設置相應的忽略規則,來忽略這些文件的提交。在項目根路徑添加.gitignore文件,內容如下,匹配規則按行從上到下
-
#忽略所有.svn目錄
-
.svn/
-
#忽略所有target目錄
-
target/
-
#忽略所有.idea目錄
-
.idea/
-
#忽略所有.iml文件
-
*.iml.mymetadata
.checkstyle
.classpath
.project
.class
.war
.zip
.rar
.idea
*.iml
.settings/*
/indexes/*
/target/*
/src/main/webapp/WEB-INF/classes/*
/src/main/webapp/userfiles/*
/target/
/src/main/resources/rebel.xml
/src/main/resources/jeesite.properties
語法 | 含義 |
---|---|
/ | 目錄 |
* | 多個字符 |
? | 單個字符 |
[] | 多個可選字符匹配單個字符 |
! | 不忽略(跟蹤)匹配到的文件或目錄 |
詳細的規則可以參考官方英文文檔
3 .gitignore規則不生效
3.1 現象
不小心在IDE提示是否添加到git時,點了確定,發現管理了.idea、target文件夾,
然后添加.gitignore文件夾,配置了以上規則,但是重新編譯后,target的修改在git status還是顯示了修改!?
3.2 原因
.gitignore只能忽略那些原來沒有被track(之前沒有add過)的文件,如果某些文件已經被納入了版本管理中,則修改.gitignore是無效的。
3.3 解決方案 在目標文件夾下右鍵 git bash ,即可調出控制台輸入命令行:
解決方法就是先把本地緩存刪除(改變成未track狀態),然后再提交:
-
git rm -r --cached target
-
git rm -r --cached .idea
此后不再追蹤track這兩個文件夾