Can I include other .gitignore file in a .gitignore file? (like #include in c-like languages)

て烟熏妆下的殇ゞ 提交于 2019-11-26 20:12:50

问题


I have some files like vim.gitignore, SVN.gitignore and CVS.gitignore (spread around on my hard disk).

Can I simply include these gitignore files in a .gitignore file in a new Git project?

Edit: I have a global ignore file already.
I just want to ignore different files in different types of projects, is this possible?


回答1:


You could:

  • Have a template repo with:
    • those xxx.gitignore files in it:
    • a .gitignore file with "xxx-gitignore-xxx" in it (in other word, with a content you can easily identify
    • a .gitattribute filter driver

(for each new repo, you clone it and can start with those files already there.
Then you remove the remote 'origin' or replace it by whatever remote repo you want to push to)

On any checkout of your repo, the filter driver will, through the smudge script:

  • recognize the content of the .gitignore file
  • check if the xxx.gitignore content isn't already there (by looking for a specific string which only those files have)
  • if their content isn't there, it will append the content of those xxx.gitignore files
  • if the content is already up-to-date, it wouldn't modify the .gitignore.

Note that having a identifiable content is key here, since a filter driver script doesn't have the name/path of the file it filters.

It is a bit convoluted, but seems to be the only way to implement the "include" feature you want.




回答2:


The closes you will get is the global ignore file:

git config --global core.excludesfile ~/.gitignore

which is of course like having a .gitignore in the repo, but applicable to all repos on your system ( and not propagated to external clones.)




回答3:


I run the a project that hosts the largest amount of gitignore templates and it's extremely easy to use.

  • You can use the web to generate a template at https://gitignore.io
  • You can install gitignore via command line to type

    gi cvs,vim,svn
    

    output: https://www.gitignore.io/api/cvs,vim,svn

  • You can also update your existing templates using this url: https://www.gitignore.io/?templates=cvs,vim,svn

  • And finally, you can contribute to the list of templates which merges @github/gitignore and over 100 other community templates to create the largest repository of templates at: https://github.com/dvcs/gitignore

This doesn't allow anyone to include sub-templates, but it does generate one large template from individual git templates.



来源:https://stackoverflow.com/questions/7005142/can-i-include-other-gitignore-file-in-a-gitignore-file-like-include-in-c-li

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!