1. 程式人生 > >git提交忽略檔案或資料夾

git提交忽略檔案或資料夾

在專案根目錄下面 新增 .gitignore檔案

檔案中每一行表示需要忽略的檔案的正則表示式。

 

.gitignore檔案過濾有兩種模式,開放模式和保守模式

1. 開放模式負責設定過濾哪些檔案和資料夾

例如: /target/ 表示專案根目錄下的target資料夾裡面所有的內容都會被過濾,不被GIT 跟蹤

.classpath 表示專案根目錄下的.classpath檔案會被過濾,不被GIT跟蹤

 

2. 保守模式負責設定哪些檔案不被過濾,也就是哪些檔案要被跟蹤。

例如:

!/target/*.h 表示target資料夾目錄下所有的.h檔案將被跟蹤

 

如果你不清楚GIT會跟蹤哪些檔案,你可以先用git status命令檢視一下

C程式碼  

  1. $git status  
  2. # On branch master  
  3. # Untracked files:  
  4. #   (use "git add <file>..." to include in what will be committed)  
  5. #  
  6. #    .metadata/  
  7. #    gitignore  

 像這樣的話,就是.metadata資料夾和gitignore被跟蹤。

 

另外別忘記了在.gitignore檔案中加入一行.gitignore,否則的話.gitignore將會被傳到GIT伺服器上

規則寫法

1. 在已忽略資料夾中不忽略指定資料夾

 

/node_modules/*

!/node_modules/layer/

2. 在已忽略資料夾中不忽略指定檔案

 

/node_modules/*

!/node_modules/layer/layer.js

 

【注意項】注意寫法 要忽略的資料夾一定要結尾 /* ,否則不忽略規則將無法生效

3. 其他規則寫法 (附)

  以斜槓“/”開頭表示目錄;


  以星號“*”通配多個字元;


  以問號“?”通配單個字元


  以方括號“[]”包含單個字元的匹配列表;


  以歎號“!”表示不忽略(跟蹤)匹配到的檔案或目錄;

1、忽略檔案

*.bak               # 忽略所有副檔名為.bak的檔案

!keep.bak      # 但keep.bak檔案除外(不會被忽略)

temp/test.txt  # 忽略temp目錄下的test.txt檔案

temp/*.txt       # 忽略temp目錄下所有副檔名為.txt的檔案

 

2、忽略目錄

temp/       # 忽略temp目錄下的所有目錄和檔案

temp/*/    # 忽略temp目錄下的所有目錄,但不會忽略該目錄下的檔案