【Git第七節(jié)】忽略文件
同學(xué)們!歡迎大家來到Python自學(xué)教程教室,上節(jié)課我們帶大家學(xué)習(xí)了文件狀態(tài)的相關(guān)內(nèi)容,這節(jié)課我們學(xué)習(xí)忽略文件的相關(guān)內(nèi)容,你準(zhǔn)備好了嗎?
在文件夾中,經(jīng)常會有些“其他”文件,比如上節(jié)課最后提到的,編輯器產(chǎn)生~結(jié)尾的備份文件,或者一些臨時文件。又可能,某些文件我們只是在本地使用,并不想提交到遠程的倉庫中被別人看到。但如果我們不跟蹤這些文件,Git會一直很執(zhí)著地提醒我們工作目錄中有一些未被跟蹤的文件。如果你想清凈一點,就可以通過.gitignore文件忽略你不想看到的文件。
要感受一下忽略文件的效果,首先你得有打算忽略的文件,所以我們強行創(chuàng)建一個叫做readme.txt.tmp的文件,假設(shè)它是readme.txt產(chǎn)生的臨時文件。
git status 看一下效果,同上節(jié)課中一樣,在untracked files里列出了這個文件:
# On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # readme.txt.tmp othing added to commit but untracked files present (use "git add" to track)
然后我們在工作目錄中新建一個.gitignore文件,在里面寫上一行:
*tmp
保存退出,再運行 git status:
# On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # .gitignore othing added to commit but untracked files present (use "git add" to track)
readme.txt.tmp文件消失了,untracked files里只剩下剛創(chuàng)建的.gitignore文件。
來看一下《Pro Git》里對.gitignore格式規(guī)范的解釋:
所有空行或者以注釋符號 # 開頭的行都會被 Git 忽略。
可以使用標(biāo)準(zhǔn)的 glob 模式匹配。
匹配模式最后跟反斜杠(/)說明要忽略的是目錄。
要忽略指定模式以外的文件或目錄,可以在模式前加上驚嘆號(!)取反。
所謂的 glob 模式是指 shell 所使用的簡化了的正則表達式:
星號(*)匹配零個或多個任意字符;
[abc] 匹配任何一個列在方括號中的字符(這個例子要么匹配一個 a,要么匹配一個 b,要么匹配一個 c);
問號(?)只匹配一個任意字符;
如果在方括號中使用短劃線分隔兩個字符,表示所有在這兩個字符范圍內(nèi)的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的數(shù)字)。
所以我們前面寫的 *tmp,就是指忽略所有以tmp結(jié)尾的文件。
再來看一個 .gitignore 文件的例子:
# 此為注釋 – 將被 Git 忽略 # 忽略所有 .a 結(jié)尾的文件 *.a # 但 lib.a 除外 !lib.a # 僅僅忽略項目根目錄下的 TODO 文件 # 不包括 subdir/TODO /TODO # 忽略 build/ 目錄下的所有文件 build/ # 忽略 doc 目錄下的所有 .txt 文件 # 會忽略 doc/notes.txt # 但不包括 doc/server/arch.txt doc/*.txt
當(dāng)然,你也可以把.gitignore文件本身從git中忽略。但我不建議這么做,而是所有協(xié)作開發(fā)者使用統(tǒng)一的規(guī)范,避免有人因為沒寫.gitignore而提交上去一些奇怪的文件。
在項目一開始就把.gitignore設(shè)置好,不僅是為了好看,也是避免不必要的文件對代碼產(chǎn)生干擾。比如有些需要本地生成的文件,如果放在遠程倉庫中被其他人下載使用,也可能會導(dǎo)致程序無法正常運行。
恭喜您在Python自學(xué)的道路上又堅持了一天,今天我們所講的忽略文件的相關(guān)內(nèi)容你都學(xué)會了嗎?你都理解清楚了嗎?下節(jié)更精彩,敬請期待!
好啦,今天的分享到這里就結(jié)束了,希望大家持續(xù)關(guān)注馬哥教育官網(wǎng),每天都會有大量優(yōu)質(zhì)內(nèi)容與大家分享!
聲明:文章來源于網(wǎng)絡(luò),侵刪!