0

我想在特定的开发环境中使用 git。元交易者 4。

开发目录的结构是固定的,是这样的:

MQL4
  Expert
  Files
  imagery
  Include
  Indicators

一些目录默认带有示例文件。我的想法是在这些目录下创建目录,并在 .gitignore 中指出,我希望 git 只需要考虑这些目录。

MQL4
  Expert
    MyGITExperts
  Files
  imagery
  Include
    MyGITInclude
  Indicators
    MyGITIndicators

我的想法是对的吗?有更好的吗?如何告诉 git,它应该只处理这些和这些子文件夹?

4

2 回答 2

4

是的,有办法。

从 git docs Example 排除除特定目录 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

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

于 2015-02-01T08:28:45.740 回答
2

文档中,

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

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

例如,让我们说您有几个其他目录/文件,Include/ 您需要先忽略这些目录/文件,然后Include/MyGITInclude/明确取消忽略该目录

/Include/*
!/Include/MyGITInclude/

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

干杯!

于 2015-02-01T09:03:32.410 回答