git 入門教程之忽略文件

忽略文件

"並非全部的牛奶都叫特侖蘇",在版本控制系統中也有類似的表達,那就是"並非全部的文件都須要提交".git

有的是由於不必提交,好比日誌文件,系統緩存文件等,有的是由於不能提交,好比我的隱私文件,付費文檔等.github

正常來講,這些文件都是不該該被提交到版本庫,假若一不留神提交到版本庫,要麼泄露機密信息,要是形成經濟損失,要麼對團隊其餘人工做形成不便.緩存

有鑑於此,咱們應該尋求一種機制來規避事故的發生,在 git 版本控制系統中通常有三種不一樣的解決方案.ide

最經常使用也是最簡單的當屬 .gitignore 文件,不過先不要着急,咱們先了解一下忽略原則和配置規則.工具

忽略文件的基本原則

  • 忽略操做系統自動生成的文件,保持不一樣操做系統的純粹性和整潔度.
  • 忽略工具軟件自動生成的文件,避免因個性化配置而產生的工做障礙.
  • 忽略我的隱私配置文件,除非你願意承擔公開隱私所帶來的潛在風險.
目標: 只提交必要文件,忽略無用文件,儘量考慮多種狀況,不給他人制造麻煩.

忽略文件的配置規則

一行記錄表明一條規則,配置規則僅針對還沒有被跟蹤的文件清單.操作系統

# 忽略 `*.a` 文件
*.a
# 忽略 `*.A` 文件,但 `somefile.A` 除外.
*.A
!somefile.A

# 忽略 `*.b` 和 `*.B` 文件
*.[bB]
# 忽略 `*.c` 和 `*.C` 文件,但 `somefile.C` 除外.
*.[cC]
!somefile.C

# 只忽略 `somepath/` 目錄(包括該目錄下全部文件),但不忽略 `somepath` 文件
somepath/
# 只忽略 `somepath/` 一級子目錄下 `*.txt`,但不忽略 `somepath/sub/*.txt` 文件
somepath/*.txt

# 忽略 `somepath` 文件和 `somepath` 目錄
somepath
# 只忽略 `somepath` 文件,但不忽略 `somepath/` 目錄
somepath
!somepath/

# 只忽略當前目錄下的 `somepath` 文件和目錄,但不忽略子目錄的 `somepath`
/somepath
說明: # 開頭表示註釋, ! 緊跟某規則以後表示增長例外狀況

在線示例和幫助文檔

提供兩個不錯的在線示例,能夠參考下在什麼場景應該忽略哪些文件以及如何編寫忽略規則.版本控制

運行 git help ignore 命令查看幫助文檔

三種設置方式

git 設置忽略文件有三種方式,以下:日誌

  • 全局配置文件(~/.gitignore),執行 git config --global core.excludesfile ~/.gitignore 命令後適用於全部的版本庫.
  • 遠程配置文件($PWD/.gitignore),編輯 .gitignore 文件後適用於遠程和本地版本庫.
  • 本地配置文件($PWD/.git/info/exlude),編輯 $PWD/.git/info/exlude 文件後適用於本地版本庫.

最經常使用方式

三種設置方式中,第二種最爲常見,另外兩種大體同樣,重點在於配置文件如何編寫.code

建立 .gitignore 文件

參考在線示例以及基本語法編寫自定義忽略規則文檔

# General
.DS_Store
.AppleDouble
.LSOverride

# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db

提交 .gitignore 文件

忽略文件規則配置完畢後,須要將該文件提交到版本庫,這樣在其餘電腦上也能應用相同的忽略規則.

# 添加 `.gitignore` 
git add .gitignore

# 提交 `.gitignore` 
git commit -m "add .gitignore"

# 上傳 `.gitignore`
git push origin master

驗證忽略效果

新建 .gitignore 文件中已忽略的文件,運行 git status 命令,若是提示 working directory clean,那麼說明忽略文件的配置已經生效,若是工做區不乾淨,很遺憾,忽略文件配置可能並未生效,須要檢查下哪裏配置錯了.

運行 git check-ignore 命令檢查是哪一個配置規則寫錯了,從而咱們可以更正相應的配置規則.

相關文章
相關標籤/搜索