18 1月 2011

git ignore

  • (1)以#起始的該行資料會被當做註解
  • (2)使用Glog Pattern
    Glog patterns 相近於常見的Regular Expressions, 但是較為簡單,由於git在ignore裡使用的是glob patterns,所以還是需要稍為瞭解一下。
    • ?:代表任意的一個字元
    • *:代表任意數目的字元
    • {!ab}:必需不合於此pattern
    • {ab,bb,cx}:代表合於ab,bb,cx之一種pattern即可
    • [abc]:代表合於a,b,c中任一字元即可
    • [^abc]:代表必需不合於a,b,c中任一字元
  • (3)若要指出目錄請以"/"表示

 

下列是我常用的.gitignore內容

#Mac OSX Finder
.DS_Store
#Maven Build Folder : Target
target/
#Temp Folder
tmp/
#Log Folder or Files
log/
*.log

有些小地方比較有趣
例如想忽略repository目錄下的特定檔案,可以這樣表示
/eclipse.config
如果用了log/*.log,代表你是要忽略log目錄下,第一層檔名結尾為.log的檔案,但是/log/2010/11/12/ap.log就會被加入到repository中。
所以要忽略log目錄下包含子目錄的所有.log檔案,要這樣表示
log/**/*.log

不過如果要忽略特定目錄下的所有檔案,像是log目錄中的所有檔案,
雖然可以用這樣來表示
log/**/* (log本身這個目錄仍會被加入repository)
不過用
log/ (log本身這個目錄不會被加入repository)
會比較簡潔.... 
雖然意義上仍有不同

不過Git有些特性讓我比較困擾的,特別是空目錄不會被加到repository中,這點在最初設定時就會有些麻煩....

沒有留言: