Git忽略文件.gitignore操作方法指南
Git忽略文件.gitignore
在工程中,并不是所有文件都需要保存到版本庫(kù)中的,例如“target”目錄及目錄下的文件就可以忽略。在Git工作區(qū)的根目錄下創(chuàng)建一個(gè)特殊的.gitignore文件,然后把要忽略的文件名填進(jìn)去,Git就會(huì)自動(dòng)忽略這些文件或目錄。
gitignore的基礎(chǔ)用法
# .gitignore配置文件的一些通用技巧 [參考:https://git-scm.com/docs/gitignore]
# 1.空白行不匹配任何文件,所以可以作為可讀性的分隔符,同時(shí)兩端的空格將會(huì)被忽略.
# 2.使用[#]開(kāi)頭,將會(huì)注釋掉整行,使其不進(jìn)行匹配操作,如果需要匹配#開(kāi)頭,可以使用轉(zhuǎn)義字符[\].
# 3.1匹配模式以[/]結(jié)尾,表示想要匹配一個(gè)目錄及其子文件.(比如[foo/]會(huì)匹配foo目錄及其下面的路徑.)
# 3.2匹配模式不包含[/],將會(huì)全局匹配該文件.
# 4.通配符
# [*]: 匹配除[/]以外的任何內(nèi)容,也就意味著[*]不能跨目錄.
# [?]: 匹配除[/]和[[]以及[]]以外的任何一個(gè)字符.
# [**]: 匹配所有的內(nèi)容,或者說(shuō)匹配任意目錄下的內(nèi)容.
# 示例:
# 1.[**/foo/bar] 將會(huì)匹配所有直接在foo目錄下的bar,無(wú)論foo處在何處.
# 2.[foo/**]則表示匹配foo目錄下的所有文件和目錄.
# 3.[a/**/b]則可以匹配a/b, a/c/b, a/c/d/b,即此處的[**]可以表示0個(gè)或多個(gè).
# !!! 需要注意的是,除上面示例的用法外,剩余的[**]都是無(wú)效的..
# 5.可以通過(guò)前綴[!]來(lái)表示不忽略某些文件,比如可以通過(guò)[!a]來(lái)確保文件a不會(huì)被忽略,即時(shí)前面已經(jīng)聲明了忽略其父目錄,該模式優(yōu)先級(jí)高于普通忽略模式.
Git 三種方法忽略提交的文件
在Git項(xiàng)目中定義 .gitignore 文件
這種方式通過(guò)在項(xiàng)目的某個(gè)文件夾下定義 .gitignore 文件,在該文件中定義相應(yīng)的忽略規(guī)則,來(lái)管理當(dāng)前文件夾下的文件的Git提交行為。
.gitignore 文件是可以提交到公有倉(cāng)庫(kù)中,這就為該項(xiàng)目下的所有開(kāi)發(fā)者都共享一套定義好的忽略規(guī)則。
在 .gitingore 文件中,遵循相應(yīng)的語(yǔ)法,在每一行指定一個(gè)忽略規(guī)則。如:
*.log *.temp /vendor2\
在Git項(xiàng)目的設(shè)置中指定排除文件
這種方式只是臨時(shí)指定該項(xiàng)目的行為,需要編輯當(dāng)前項(xiàng)目下的 .git/info/exclude 文件,然后將需要忽略提交的文件寫(xiě)入其中。
需要注意的是,這種方式指定的忽略文件的根目錄是項(xiàng)目根目錄。
定義Git全局的 .gitignore 文件
除了可以在項(xiàng)目中定義 .gitignore 文件外,還可以設(shè)置全局的 git .gitignore 文件來(lái)管理所有Git項(xiàng)目的行為。這種方式在不同的項(xiàng)目開(kāi)發(fā)者之間是不共享的,是屬于項(xiàng)目之上Git應(yīng)用級(jí)別的行為。
這種方式也需要?jiǎng)?chuàng)建相應(yīng)的 .gitignore 文件,可以放在任意位置。然后在使用以下命令配置
Git: git config --global core.excludesfile \~/.gitignore
.gitignore文件中的忽略規(guī)則
在空格不匹配任意文件,可作為分隔符,可用反斜杠轉(zhuǎn)義
# 開(kāi)頭:標(biāo)識(shí)注釋?zhuān)梢允褂梅葱备苓M(jìn)行轉(zhuǎn)義
! 開(kāi)頭:標(biāo)識(shí)否定,該文件將會(huì)再次被包含,如果排除了該文件的父級(jí)目錄,則使用 ! 也不會(huì)再次被包含。可以使用反斜杠進(jìn)行轉(zhuǎn)義
/ 結(jié)束:只匹配文件夾以及在該文件夾路徑下的內(nèi)容,但是不匹配該文件
/ 開(kāi)頭:匹配文件
如果一個(gè)模式不包含斜杠,則它匹配相對(duì)于當(dāng)前 .gitignore 文件路徑的內(nèi)容,如果該模式不在 .gitignore 文件中,則相對(duì)于項(xiàng)目根目錄
** 匹配多級(jí)目錄,可在開(kāi)始,中間,結(jié)束
?
通用匹配單個(gè)字符
[]
通用匹配單個(gè)字符列表
常用匹配示例:
bin/ :忽略當(dāng)前路徑下的bin文件夾,該文件夾下的所有內(nèi)容都會(huì)被忽略,不忽略 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 : 忽略當(dāng)前路徑的 config.php 文件
java忽略文件
# 編譯后的class文件,忽略所有以[.class]結(jié)尾的文件 *.class # 日志文件,忽略所有以[.log]結(jié)尾的文件. *.log # BlueJ 文件,忽略所有以[.ctxt]結(jié)尾的文件. *.ctxt # Mobile Tools for Java (J2ME),忽略[.mtj.tmp/]目錄及其子文件. .mtj.tmp/ # 打包文件,忽略所有以[.jar]或[.war]或[.nar]或[.ear]或[.zip]或[.tar.gz]或[rar]結(jié)尾的文件. *.jar *.war *.nar *.ear *.zip *.tar.gz *.rar
IDE環(huán)境忽略文件
.idea/* .idea/compiler.xml .idea/encodings.xml .idea/modules.xml *.iml
maven忽略文件
target/ pom.xml.tag pom.xml.releaseBackup pom.xml.versionsBackup pom.xml.next release.properties dependency-reduced-pom.xml buildNumber.properties .mvn/timing.properties # Avoid ignoring Maven wrapper jar file (.jar files are usually ignored) !/.mvn/wrapper/maven-wrapper.jar
other環(huán)境忽略文件
*.sw? .#* *# *~ .classpath .project .settings/ bin build target dependency-reduced-pom.xml *.sublime-* /scratch .gradle Guardfile README.html *.iml .idea
.gitignore規(guī)則不生效
.gitignore只能忽略那些原來(lái)沒(méi)有被 track 的文件,如果某些文件已經(jīng)被納入了版本管理中,則修改.gitignore是無(wú)效的。
解決方法就是先把本地緩存刪除**(改變成未track狀態(tài))**,然后再提交:
git rm -r cached . git add . git commit -m 'update .gitignore'
總結(jié)
到此這篇關(guān)于Git忽略文件.gitignore操作方法的文章就介紹到這了,更多相關(guān)Git忽略文件.gitignore內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
安全校驗(yàn)Session驗(yàn)證碼并避免繞開(kāi)驗(yàn)證碼攻擊
校驗(yàn)驗(yàn)證碼的Session是否為空或者校驗(yàn)用戶(hù)輸入的驗(yàn)證碼是否合法,構(gòu)造安全表單的關(guān)鍵就是永遠(yuǎn)不要相信用戶(hù)的輸入2012-01-01Git 教程之創(chuàng)建倉(cāng)庫(kù)詳解
本文主要介紹Git 創(chuàng)建倉(cāng)庫(kù)的知識(shí),這里整理了相關(guān)資料及簡(jiǎn)單示例代碼,幫助大家學(xué)習(xí)理解此部分的知識(shí),有興趣的小伙伴可以參考下2016-09-09Git?Commitizen提交規(guī)范化自動(dòng)生成changelog文件
這篇文章主要為大家介紹了Git?Commitizen提交規(guī)范化自動(dòng)生成changelog文件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09在 WordPress 的頁(yè)眉(header)和頁(yè)腳(footer)添加代碼方法
這篇文章主要介紹了在 WordPress 的頁(yè)眉(header)和頁(yè)腳(footer)添加代碼方法2021-09-09VSCode 格式化縮進(jìn)代碼的實(shí)現(xiàn)
這篇文章主要介紹了VSCode 格式化縮進(jìn)代碼的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08