.gitignore文件_Java小白入门,Git忽略文件.gitignore详解
在工程中,并不是所有文件都需要保存到版本庫中的,例如“target”目錄及目錄下的文件就可以忽略。在Git工作區(qū)的根目錄下創(chuàng)建一個特殊的.gitignore文件,然后把要忽略的文件名填進去,Git就會自動忽略這些文件或目錄。
Git 忽略規(guī)則優(yōu)先級
在 .gitingore 文件中,每一行指定一個忽略規(guī)則,Git 檢查忽略規(guī)則的時候有多個來源,它的優(yōu)先級如下(由高到低):
從命令行中讀取可用的忽略規(guī)則當前目錄定義的規(guī)則
父級目錄定義的規(guī)則,依次遞推
$GIT_DIR/info/exclude 文件中定義的規(guī)則
core.excludesfile中定義的全局規(guī)則
Git 忽略規(guī)則匹配語法
在 .gitignore 文件中,每一行的忽略規(guī)則的語法如下:
空格不匹配任意文件,可作為分隔符,可用反斜杠轉(zhuǎn)義開頭的文件標識注釋,可以使用反斜杠進行轉(zhuǎn)義
! 開頭的模式標識否定,該文件將會再次被包含,如果排除了該文件的父級目錄,則使用 ! 也不會再次被包含。可以使用反斜杠進行轉(zhuǎn)義
/ 結束的模式只匹配文件夾以及在該文件夾路徑下的內(nèi)容,但是不匹配該文件
/ 開始的模式匹配項目跟目錄
如果一個模式不包含斜杠,則它匹配相對于當前 .gitignore 文件路徑的內(nèi)容,如果該模式不在 .gitignore 文件中,則相對于項目根目錄
** 匹配多級目錄,可在開始,中間,結束
? 通用匹配單個字符
* 通用匹配零個或多個字符
[] 通用匹配單個字符列表
常用匹配示例
bin/: 忽略當前路徑下的bin文件夾,該文件夾下的所有內(nèi)容都會被忽略,不忽略 bin 文件/bin: 忽略根目錄下的bin文件
/*.c: 忽略 cat.c,不忽略 build/cat.c
debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
**/foo: 忽略/foo, a/foo, a/b/foo等
a/**/b: 忽略a/b, a/x/b, a/x/y/b等
!/bin/run.sh: 不忽略 bin 目錄下的 run.sh 文件
*.log: 忽略所有 .log 文件
config.php: 忽略當前路徑的 config.php 文件
.gitignore規(guī)則不生效
.gitignore只能忽略那些原來沒有被track的文件,如果某些文件已經(jīng)被納入了版本管理中,則修改.gitignore是無效的。
解決方法就是先把本地緩存刪除(改變成未track狀態(tài)),然后再提交:
git rm -r --cached . git add . git commit -m 'update .gitignore'你想添加一個文件到Git,但發(fā)現(xiàn)添加不了,原因是這個文件被.gitignore忽略了:
$ git add App.class The following paths are ignored by one of your .gitignore files: App.class Use -f if you really want to add them.如果你確實想添加該文件,可以用-f強制添加到Git:
$ git add -f App.class或者你發(fā)現(xiàn),可能是.gitignore寫得有問題,需要找出來到底哪個規(guī)則寫錯了,可以用git check-ignore命令檢查:
$ git check-ignore -v App.class .gitignore:3:*.class App.classGit會告訴我們,.gitignore的第3行規(guī)則忽略了該文件,于是我們就可以知道應該修訂哪個規(guī)則。
Java項目中常用的.gitignore文件
# Compiled class file *.class# Eclipse .project .classpath .settings/# Intellij *.ipr *.iml *.iws .idea/# Maven target/# Gradle build .gradle# Log file *.log log/# out **/out/# Mac .DS_Store# others *.jar *.war *.zip *.tar *.tar.gz *.pid *.orig temp/原創(chuàng):ThinkWon優(yōu)課達:Java小白入門,Git是什么?
優(yōu)課達:程序員小白入門Java,JDK怎么安裝與配置環(huán)境變量?
優(yōu)課達:程序員面試Java編程知識大全:最新版Java基礎知識面試題(一)
優(yōu)課達:程序員面試Java編程知識大全:最新版Java集合容器面試題(一)
優(yōu)課達:程序員面試Java編程知識大全:最新版Java虛擬機(JVM)面試題(一)
聽說給好內(nèi)容點贊,知乎就會繼續(xù)給你推薦相關的優(yōu)質(zhì)回答,再也不怕沒學習素材了~~
總結
以上是生活随笔為你收集整理的.gitignore文件_Java小白入门,Git忽略文件.gitignore详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DAY5-小别-2018-1-15
- 下一篇: Java使用原子类进行多线程的 i++