如何告诉GIT,它应该只关注这些和这些子文件夹?

时间:2015-02-01 08:03:18

标签: git gitignore mql4

我想在特定的开发环境中使用git。 MetaTrader 4。

开发目录的结构是固定的,它是这种类型:

MQL4
  Expert
  Files
  imagery
  Include
  Indicators

默认情况下,某些目录带有示例文件。 我的想法是在这些目录下创建目录,并在.gitignore中表示,我希望git只能考虑这些目录。

MQL4
  Expert
    MyGITExperts
  Files
  imagery
  Include
    MyGITInclude
  Indicators
    MyGITIndicators

我的想法是正确的吗? 还有更好的吗? 如何告诉git,它应该只关注这些和这些子文件夹?

2 个答案:

答案 0 :(得分:4)

是的,有办法。

来自git docs 示例排除除特定目录foo / bar之外的所有内容(注意/ * - 没有斜杠,通配符也会排除foo / bar中的所有内容):

$ cat .gitignore
# exclude everything except directory foo/bar
/*
!/foo
/foo/*
!/foo/bar

http://git-scm.com/docs/gitignore

在你的情况下 我假设MQL4在您的项目根目录中(其中.git文件在那里)

/*
!/MQL4
/MQL4/*
!/MQL4/Expert/MyGITExperts
!/MQL4/Files
!/MQL4/imagery
!/MQL4/Include/MyGITInclude
!/MQL4/Indicators/MyGITIndicators

当您拥有大量此类文件夹时,这通常是一个坏主意

答案 1 :(得分:2)

来自documentation

  

gitignore - 指定要忽略的故意未跟踪文件

首先,您需要提及您不想跟踪的文件,然后包括您想要处理的文件。

例如,Lets说你在Include/中有几个其他目录/文件 您需要先忽略它们,然后明确地忽略Include/MyGITInclude/目录

/Include/*
!/Include/MyGITInclude/

这样您就可以获得所有MyGITInclude /目录,包括子目录及其文件。对其他目录/子目录执行相同的操作。

干杯!