在 .gitignore 文件中添加像 *folder 这样的文件夹是错误的吗?

is it wrong to add folder like *folder in .gitignore file?

我在 android 工作室有 3 种口味。 当我创建任何 flavor apk 然后发布带有 apk(+somefile) 的文件夹时,在受尊重的 flavor 文件夹下生成,这被认为是 git 的未版本化文件。 因为 我不想在 git 中添加 *release in .gitignore 文件 这是错误的方法吗? 以后会不会出问题?

myApp
    - .gradle
    - .idea
    - build
    - app
        - build
        - flavour1
            -release
                -app-flavour1-release.apk
                -output-metadata.json
        - flavour2
            -release
                -app-flavour2-release.apk
                -output-metadata.json
        - libs
        - src
            - flavour1
                - somefile
            - flavour2
                - somefile
            - main
            - test
            - androidTest
            - .gigignore
            - build.gradle
            - proguard-rules.pro
            - releasekeystore.jks
        - .gigignore
        - build.gradle
    - openCVLibrary3410
        - build
        - src
        - .gigignore
        - lint.xml
    - scanlibrary
        - build
        - src
        - .gigignore
        - build.gradle
    - .gigignore
    - build.gradle
    - somefile..

我不会说这是错误的,但我会建议您确保 gitignore 文件中的模式尽可能严格地符合您的标准项目布局,以避免有人制作文件夹后意外被忽略。

\*release 将忽略与忽略文件位于同一文件夹中的任何以“release”结尾的文件或文件夹。在我的项目中,我经常用连字符连接特殊文件夹,例如“linux-release”,所以在这种情况下我可能会使用“*-release”来尽可能减少匹配的情况。

所有这些都是为了说明您所做的不应该造成任何问题,但我会加倍努力,通过现在在模式中更加具体来确保您的团队的其他成员不会无法预测它。

如果您愿意,post 一个更好的文件夹结构示例可以提供更直接的建议。

不同做法的示例: 在我参与的许多项目中,我们将发布放在 build/release/androidbuild/release/ios 文件夹中。我们在 .git 中有 build/ 忽略并使用这些构建子文件夹,因为每个开发人员都知道该文件夹中的任何内容都应该是构建的结果或它的副产品,它们不受版本控制。所以我们的开发人员知道任何名为 build 的文件夹,即使在另一个非 src 目录中也不是可能不应该用于在 git.

中存储文件的东西