我想忽略存储库中的所有文件,除了那些出现在bin子目录中的文件。我试着在我的.gitignore中添加以下内容:
*
!bin/*
然而,这并没有达到预期的效果:我在bin/中创建了一个新文件,但是执行git status仍然没有显示任何要提交的内容(工作目录清洁)。
有什么建议吗?
我想忽略存储库中的所有文件,除了那些出现在bin子目录中的文件。我试着在我的.gitignore中添加以下内容:
*
!bin/*
然而,这并没有达到预期的效果:我在bin/中创建了一个新文件,但是执行git status仍然没有显示任何要提交的内容(工作目录清洁)。
有什么建议吗?
当前回答
你必须排除到目的地途中的一切,但你必须包括目的地:
注意:这是一个排除文件(即.gitignore),所以逻辑是颠倒的。忽略tsp目录下的所有文件,除了src目录…
/*
!/tsp
/tsp/*
!/tsp/src
/tsp/src/*
!/tsp/src/*.h
!/tsp/src/*.cpp
!/tsp/src/data.txt
!/.gitignore
其他回答
从官方git文档中,有一个例子是这样说的:
示例排除除特定目录foo/bar以外的所有内容(注意/* -没有斜杠,通配符也会排除foo/bar内的所有内容):
$ cat .gitignore
# exclude everything except directory foo/bar
/*
!/foo
/foo/*
!/foo/bar
关于前导斜杠的解释:在gitignore中什么时候使用前导斜杠。
对我来说,我不应该忽略父文件夹,而是使用/*在其中的文件和文件夹
-- **/node_modules
++ **/node_modules/*
then
++ !node_modules/@my-package/
我认为更好的方法是将每个模式锚定到顶部git目录,以斜杠开始模式:
/*
!/public_html
!/.gitignore
而不是忽略所有的文件,它将只忽略顶级文件,而不是那些你不想忽略的目录。
这里如何忽略一切,除了一个目录“MY_SUPER_DUPER_TEMPLATE_directory”在一些目录
结构:/ / MY_SUPER_DUPER_TEMPLATE_directory bitrix /模板
/*
!/bitrix
/bitrix/*
!/bitrix/templates
/bitrix/templates/*
!/bitrix/templates/MY_SUPER_DUPER_TEMPLATE_directory
*.DS_Store
*.gitignore
试试这个不起眼的git bug。
!bin**/**
希望能有所帮助。
支持文档git错误示例
PS:在评论之前先试一下。