我试图更清楚地理解.gitignore语法,特别是对于https://github.com/github/gitignore gitignores而言.
我看到前导斜杠仅用于匹配相对于.gitignore文件位置的路径名(来自http://git-scm.com/docs/gitignore):
前导斜杠与路径名的开头匹配.例如,"/*.c"匹配"cat-file.c"但不匹配"mozilla-sha1/sha1.c".
但是当我删除主要斜线时会发生什么?据我所知,有两种情况:
dir/将匹配<root>/dir,<root>/a/dir,<root>/a/b/c/.../dir等,其中<root>是的位置.gitignore的文件..gitignore文件位置的路径名匹配.这些是我检查此行为的示例:
# Directory structure:
<root>
?? dir/
? ?? test
?? src/
? ?? dir/
? ? ?? test
test file is there only because Git does not track empty directories.
Run Code Online (Sandbox Code Playgroud)
第一次测试:
# .gitignore
dir/
# git status
nothing to commit
Run Code Online (Sandbox Code Playgroud)
所以Git忽略了这两个dir目录.这与案例编号1一致:模式没有斜杠(除了尾部),因此Git正在观察整个目录树,忽略与模式匹配的所有内容.
第二次测试:
# .gitignore
/dir/
# git status
Untracked …Run Code Online (Sandbox Code Playgroud) 我们通常将Eclipse用于特定的Java项目,但最近我将项目导入NetBeans以使用其对话框构建功能.
由于我可能会回到这里,我想将NetBeans项目文件存储到版本控制中.但是,我不想提交"我的"与"项目"的文件,即具有我自己设置的文件会与其他用户冲突.
NetBeans在顶级项目区域中创建了以下结构:
nbbuild
nb-build.xml
nbproject
<various files>
configs
private
Run Code Online (Sandbox Code Playgroud)
显然nbbuild是构建输出,因此不会进入.nb-build.xml文件似乎很可能,大多数情况下也是如此nbproject.但是,这nbproject/private表明它是"我的".偷看"configs",我不清楚这是我的还是项目......
有人有指导吗?