git ingore 檔案理解

2021-09-29 17:40:31 字數 1651 閱讀 2836

在 .gitignore 檔案中,每一行的忽略規則的語法如下:

空格不匹配任意檔案,可作為分隔符,可用反斜槓轉義

# 開頭的模式標識注釋,可以使用反斜槓進行轉義

! 開頭的模式標識否定,該檔案將會再次被包含,如果排除了該檔案的父級目錄,則使用 ! 也不會再次被包含。可以使用反斜槓進行轉義

/ 結束的模式只匹配資料夾以及在該資料夾路徑下的內容,但是不匹配該檔案

/ 開始的模式匹配專案跟目錄

如果乙個模式不包含斜槓,則它匹配相對於當前 .gitignore 檔案路徑的內容,如果該模式不在 .gitignore 檔案中,則相對於專案根目錄

**匹配多級目錄,可在開始,中間,結束

?通用匹配單個字元

通用匹配單個字元列表

常用匹配示例:

bin/: 忽略當前路徑下的bin資料夾,該資料夾下的所有內容都會被忽略,不忽略 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規則不生效

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

忽略未被check的檔案,將檔案從本地快取中刪除,改變為未track的狀態,然後可以繼續提交

git rm -r --cached .

git add .

git commit -m 'update .gitignore'

規則 作用

/mtk 過濾整個資料夾

*.zip 過濾所有.zip檔案

/mtk/do.c 過濾某個具體檔案

!/mtk/one.txt 追蹤(不過濾)某個具體檔案

注意:如果你建立.gitignore檔案之前就push了某一檔案,那麼即使你在.gitignore檔案中寫入過濾該檔案的規則,該規則也不會起作用,git仍然會對該檔案進行版本管理。

配置語法

以斜槓「/」開頭表示目錄;

以星號「*」通配多個字元;

以問號「?」通配單個字元

以方括號「」包含單個字元的匹配列表;

以嘆號「!」表示不忽略(跟蹤)匹配到的檔案或目錄。

注意: git 對於 .gitignore配置檔案是按行從上到下進行規則匹配的

指定對應的ingore檔案進行配置和讀取

這種方式也需要建立相應的 .gitignore 檔案,可以放在任意位置。然後在使用以下命令配置git:

git config --global core.excludesfile ~/.gitignore

理解檔案上傳

可以通過event.target.files獲取files集合,files集合中包含一組fils物件,每個file物件都對應著乙個檔案,包含唯讀屬性 name size type lastmodifieddate。可以用filereader來讀取非同步本地檔案,也可以通過url物件來指向儲存在fil...

Makefile檔案理解

makefile檔案 首先要把原始檔 c或者.cpp 編譯成中間 檔案,在windows下也就是.obj檔案,unix下是.o檔案,即 object file,這個動作叫做編譯 compile 然後再把大量的object file合成執行檔案,這個動作叫作鏈結 link 編譯時,編譯器需要的是語法的...

RT Thread Kconfig檔案理解

開啟了乙個stm32f103x的kconfig檔案如下 mainmenu rt thread project configuration config bsp dir string option env bsp root default config rtt dir string option en...