之前写过几个nodejs的项目,但是一直没有了解过gitignore,然后别人看我的项目的时候就会很惊奇地说,咦你怎么把 node_modules 都传上去啦。今天突然发现github还有一个gitignore可以选择性的忽视某些文件,可以在push的时候选择不上传 node_modules 文件夹。
首先看一下几个例子:
第一个是cnode的nodeclub的.gitignore
config.js
.cov
coverage
node_modules
.naeindex
coverage.html
.monitor
*.min.*.js
*.min.*.css
assets.json
# Ignore Mac OS desktop services store
.DS_Store
# Ignore Windows desktop setting file
desktop.ini
*.log
.idea
public/upload/*
*.sublime-project
*.sublime-workspace
*.swp
第二个是facebook的f8app的.gitignore
# OSX
#
.DS_Store
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
project.xcworkspace
ios/Pods
ios/F8v2.xcworkspace
# Android/IJ
#
.idea
.gradle
local.properties
*.iml
# node.js
#
node_modules/
npm-debug.log
# F8
#
/release
/logs
总结一下语法:
* 空行或是以#开头的行即注释行将被忽略。
* 在后面添加正斜杠/来忽略文件夹,例如build/即忽略build文件夹。
* 使用!来否定忽略,即比如在前面用了*.apk,然后使用!a.apk,则这个a.apk不会被忽略。
* *用来匹配零个或多个字符,如.[oa]忽略所有以”.o”或”.a”结尾,~忽略所有以~结尾的文件(这种文件通常被许多编辑器标记为临时文件);[]用来匹配括号内的任一字符,如[abc],也可以在括号内加连接符,如[0-9]匹配0至9的数;?用来匹配单个字符。