最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Git忽略文件的幾種方式以及.gitignore文件的忽略規(guī)則詳解

 更新時間:2026年03月09日 10:01:57   作者:Major_xx  
本文介紹了如何使用`.gitignore`文件來忽略不需要提交到版本庫的文件,并詳細(xì)說明了`.gitignore`文件的優(yōu)先級以及常見的忽略規(guī)則示例

.gitignore文件

在使用Git的過程中,我們喜歡有的文件比如日志,臨時文件,編譯的中間文件等不要提交到代碼倉庫,這時就要設(shè)置相應(yīng)的忽略規(guī)則,來忽略這些文件的提交。

注意:

如果你創(chuàng)建.gitignore文件之前就push了某一文件,那么即使你在.gitignore文件中寫入過濾該文件的規(guī)則,該規(guī)則也不會起作用,git仍然會對該文件進(jìn)行版本管理。

Git忽略規(guī)則以及優(yōu)先級

詳細(xì)的忽略規(guī)則可以參考官方英文文檔

在 .gitingore 文件中,每一行指定一個忽略規(guī)則,Git 檢查忽略規(guī)則的時候有多個來源,它的優(yōu)先級如下(由高到低):

  1. 從命令行中讀取可用的忽略規(guī)則
  2. 當(dāng)前目錄定義的規(guī)則
  3. 父級目錄定義的規(guī)則,依次遞推,目錄結(jié)構(gòu)較高的.gitignore文件被較近的.gitignore文件中相同的配置所覆蓋
  4. .git/info/exclude文件中定義的規(guī)則
  5. core.excludesfile中定義的全局規(guī)則

.gitignore文件忽略規(guī)則

  1. 空格不匹配任意文件,可作為分隔符,方便閱讀。
  2. #用于注釋,\表示轉(zhuǎn)義(如需使用實體\,則要加引號"\")。
  3. *可以匹配任何字符(0或多個)。
  4. ?可以匹配單個字符。(不可以匹配/)
  5. /用于分隔目錄:
    • 當(dāng)/在開頭時,表示從.gitignore文件所在的根目錄開始匹配。
    • 當(dāng)/在末尾時,只匹配目錄及該目錄下面的全部內(nèi)容,否則同名的目錄和文件都將匹配。
  6. !開頭的模式標(biāo)識否定,該文件將會再次被包含,如果排除了該文件的父級目錄,則使用!也不會再次被包含。
  7. []通常用于匹配一個字符列表,如:a[mn]z可匹配amz和anz。
  8. **用于匹配多級目錄,如a/**/b可匹配a/ba/x/b,a/x/y/b。注意:git 對于 .gitignore配置文件是按行從上到下進(jìn)行規(guī)則匹配的。

常用匹配示例

  • #: 表示此為注釋,將被Git忽略。
  • *:表示忽略所有。
  • */:表示忽略所有目錄。
  • 1.txt: 忽略任意目錄(當(dāng)前目錄即根目錄及其子文件夾)下的1.txt的文件夾或同名文件,例如1.txt,/pojo/1.txt,/pojo/a/1.txt,若是文件夾則該文件夾下的所有內(nèi)容都會被忽略。
  • *.txt: 忽略任意目錄(當(dāng)前目錄即根目錄及其子文件夾)下的所有以.txt結(jié)尾的文件夾或文件,若是文件夾則該文件夾下的所有內(nèi)容都會被忽略。
  • /1.txt:忽略根路徑下的1.txt的文件夾或同名文件,若是文件夾則該文件夾下的所有內(nèi)容都會被忽略。
  • /*.txt: 忽略根路徑下的所有以.txt結(jié)尾的文件夾或文件,若是文件夾則該文件夾下的所有內(nèi)容都會被忽略,不忽略 /pojo/1.txt。
  • pojo:忽略任意目錄(當(dāng)前目錄即根目錄及其子文件夾)下的pojo文件夾或同名文件,若是文件夾則該文件夾下的所有內(nèi)容都會被忽略。
  • /pojo: 忽略根目錄下的pojo文件夾或同名文件,若是文件夾則該文件夾下的所有內(nèi)容都會被忽略。
  • pojo/: 忽略目錄 pojo下的全部內(nèi)容;注意,不管是根目錄下的/pojo/目錄,還是某個目錄下的 /child/pojo/,以及pojo文件夾里面的全部內(nèi)容都會被忽略,同時忽略pojo文件夾,以pojo命名的文件不會忽略。
  • pojo/*:忽略當(dāng)前路徑下pojo文件夾下的全部內(nèi)容,pojo文件夾不忽略。
  • /pojo/: 忽略根目錄下的pojo文件夾,該文件夾下的所有內(nèi)容都會被忽略,以pojo命名的文件不會忽略。
  • pojo/1.txt:忽略當(dāng)前路徑下的pojo下的1.txt的文件夾或同名文件,若是文件夾則該文件夾下的所有內(nèi)容都會被忽略,不忽略pojo文件夾。
  • /pojo/1.txt:忽略根目錄下的pojo文件下的1.txt的文件夾或同名文件,若是文件夾則該文件夾下的所有內(nèi)容都會被忽略,不忽略pojo文件夾。
  • pojo/*.txt: 忽略當(dāng)前路徑下的pojo文件夾下所有以.txt結(jié)尾的文件夾或文件,若是文件夾則該文件夾下的所有內(nèi)容都會被忽略,不忽略pojo/common/1.txt,不忽略/a/pojo/1.txt,不忽略pojo文件夾。
  • pojo/1.txt/*:忽略當(dāng)前路徑下的pojo文件夾下的1.txt文件夾中的所有文件,1.txt文件夾不忽略。
  • **/pojo: 忽略任意目錄下的pojo文件夾或同名文件,若是文件夾則該文件夾下的所有內(nèi)容都會被忽略。/pojo,/pojo/1.txt,/a/pojo,/a/pojo/1.txt,a/b/pojo等。
  • a/**/b: 忽略當(dāng)前路徑下的以a文件夾為開始,中間可以有0個或任意個目錄的b文件夾或同名文件,若是文件夾則該文件夾下的所有內(nèi)容都會被忽略,a/b,a/x/ba/x/y/b,a/x/y/b/1.txt等。
  • /pojo/*!/pojo/1.txt: 忽略pojo目錄下的所有文件但不忽略pojo目錄下的1.txt文件,pojo文件夾不忽略。注意上面的/pojo/*不能寫為/pojo/,否則父目錄被前面的規(guī)則排除掉了,1.txt文件雖然加了!過濾規(guī)則,也不會生效!

有三種方法可以實現(xiàn)忽略Git中不想提交的文件

1、在Git項目中定義 .gitignore 文件(優(yōu)先級最高,推薦?。?/h3>

這種方式通過在項目的某個文件夾下定義 .gitignore 文件,在該文件中定義相應(yīng)的忽略規(guī)則,來管理當(dāng)前文件夾及其子文件夾下的文件的Git提交行為。

.gitignore 文件是可以提交到公有倉庫中,這就為該項目下的所有開發(fā)者都共享一套定義好的忽略規(guī)則。

在 .gitingore 文件中,遵循相應(yīng)的語法,在每一行指定一個忽略規(guī)則。如:

樣例一:

HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
mvnw
mvnw.cmd
.mvn


### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
logs/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/

樣例二:

######################
# Project Specific
######################
/target/www/**
/src/test/javascript/coverage/
/src/test/javascript/PhantomJS*/

######################
# Node
######################
/node/
node_tmp/
node_modules/
npm-debug.log.*

######################
# SASS
######################
.sass-cache/

######################
# Eclipse
######################
*.pydevproject
.project
.metadata
tmp/
tmp/**/*
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
.factorypath
/src/main/resources/rebel.xml

# External tool builders
.externalToolBuilders/**

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# PDT-specific
.buildpath

######################
# Intellij
######################
HELP.md
.idea
*.iws
*.iml
*.ipr
mvnw
mvnw.cmd
.mvn
*.ids
*.orig
classes/

######################
# Visual Studio Code
######################
.vscode/

######################
# Maven
######################
/log/
target/

######################
# Gradle
######################
.gradle/
/build/

######################
# Package Files
######################
*.jar
*.war
*.ear
*.db

######################
# Windows
######################
# Windows image file caches
Thumbs.db

# Folder config file
Desktop.ini

######################
# Mac OSX
######################
.DS_Store
.svn

# Thumbnails
._*

# Files that might appear on external disk
.Spotlight-V100
.Trashes

######################
# Logs
######################
*.log

######################
# Others
######################
*.class
*.*~
*~
.merge_file*

######################
# Gradle Wrapper
######################
!gradle/wrapper/gradle-wrapper.jar

######################
# Maven Wrapper
######################
!.mvn/wrapper/maven-wrapper.jar

######################
# ESLint
######################
.eslintcache
/.apt_generated/

server/package-lock.json
server/mochawesome-report/

2、在Git項目的設(shè)置中指定排除文件

這種方式只是臨時指定該項目的行為,需要編輯當(dāng)前項目下的 .git/info/exclude 文件,然后將需要忽略提交的文件寫入其中。

需要注意的是,這種方式指定的忽略文件的根目錄是項目根目錄。

3、定義Git全局的 .gitignore 文件

(個人使用方便,但是團(tuán)隊的話不適用,因為是在自己電腦設(shè)置的全局)

除了可以在項目中定義 .gitignore 文件外,還可以設(shè)置全局的 git .ignore 文件來管理所有Git項目的行為。這種方式在不同的項目開發(fā)者之間是不共享的,是屬于項目之上Git應(yīng)用級別的行為。

1) 創(chuàng)建忽略規(guī)則文件 xxxx.ignore(前綴名隨便起,建議是 git.ignore).

這個文件的存放位置原則上在哪里都可以,為了便于讓~/.gitconfig 文件引用,建議也放在用戶家目錄下

git.ignore 文件模版內(nèi)容如下:

# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml

2) 在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目錄中)我的是在C:\Users\PC.gitconfig

[user]
	email = xuxin@wondertek.com.cn
	name = xuxin666
[credential "https://gitee.com"]
	provider = generic
[core]
	excludesfile = C:/Users/PC/git.ignore

注意:這里要使用“正斜線(/)”,不要使用“反斜線(\)”

如何檢查自己寫的ignore規(guī)則是否有效?

git check-ignore -v {文件或目錄路徑}

gitignore規(guī)則不生效

.gitignore只能忽略那些原來沒有被track的文件,如果某些文件已經(jīng)被納入了版本管理中,則修改.gitignore是無效的。

解決方法就是先修改.gitignore文件,之后在執(zhí)行以下內(nèi)容先把本地緩存刪除(改變成未track狀態(tài)),然后再提交:

git rm -r --cached . 
git add .
git commit -m 'update .gitignore'

同樣的,已被.gitignore忽略的文件是無法加入版本庫的。

解決方法:要納入版本管理,先移除規(guī)則。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

茂名市| 密山市| 东辽县| 花垣县| 福泉市| 城步| 荣昌县| 武冈市| 宁津县| 大新县| 罗田县| 双峰县| 泰顺县| 临潭县| 通海县| 交口县| 孟州市| 郓城县| 漳平市| 会宁县| 广饶县| 荔波县| 运城市| 神木县| 旌德县| 阳西县| 连云港市| 南华县| 同江市| 社旗县| 阿克| 大冶市| 枝江市| 延津县| 若尔盖县| 庄浪县| 灌云县| 邵武市| 顺昌县| 宜春市| 五常市|