所以,我希望git忽略git仓库中子目录中的一些文件。
项目目录结构布局基本如下:
GIT_ROOT
---project1
------src
我希望git忽略GIT_ROOT/project1
中的某些文件。我这样做是通过创建.gitignore
文件并忽略Makefile
或其他autoconf生成的绒毛之类的东西。但是,autoconf
也会在子目录中创建Makefile,因此也会在GIT_ROOT/project1/src
中生成Makefile。当然,我想忽略GIT_ROOT/project
和GIT_ROOT/project/src
中的所有Makefile。
我想我可以通过在.gitignore
中的GIT_ROOT/project1
文件中添加以下内容来实现此目的:
**/Makefile
**/Makefile.in
我的理解是,这应该指示git忽略出现在GIT_ROOT/project1
中的任何 Makefile - 或出现在子目录中的任何Makefile,例如GIT_ROOT/project1/src
。但是,当我实际提交并推送到远程主服务器时,git 仅忽略GIT_ROOT/project1
中的Makefile - 但它不会忽略更深层目录中的任何Makefile。
我是否需要在每个子目录中包含.gitignore
文件?如果没有,为什么.gitignore
中的GIT_ROOT/project1
文件不适用于GIT_ROOT/project1/src
中的Makefile?
答案 0 :(得分:3)
您只需添加到.gitignore
中的GIT_ROOT/project1
文件:
Makefile
Makefile.in
不需要' *
'通配符。
这将应用于project1
和任何子文件夹
您可以使用git check-ignore -v -- project1/xxx/Makefile
检查该内容。
如果它们没有被忽略,那意味着它们已经被版本化:git rm --cached可以将它们从索引中删除。