我的gitignore有什么问题?

时间:2015-08-18 15:31:49

标签: git gitignore

我的.gitignore文件出了什么问题?

build/
/build
/*/build/
/*/*/build/
build/

这是我目录的结构:

myroot
    FacebookSDK
       +--src
       +--build
           +--foo
           +-- bar  
    app
       +--scr
       +--build         
    build
        +--other stuff...
        +--other stuff..
    .gitignore
    other stuff...

问题是 foo bar 不会被忽略!

可能出现什么问题?

xxxxs-my:xxxx xxx$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)

modified:   FacebookSDK/FacebookSDK.iml
modified:   FacebookSDK/build.gradle
modified:   FacebookSDK/build/intermediates/bundles/debug/classes.jar
modified:       FacebookSDK/build/intermediates/bundles/debug/res/drawable/com_facebook_button_blue.xml

3 个答案:

答案 0 :(得分:4)

您应该只需要此规则per the documentation

**/build

这将全局排除build个文件夹。

如果之前添加过任何文件夹,则必须通过git rm将其从Git中删除。

您的.gitignore实际上错误

  • /buildbuild/相同;它们将匹配顶级build/文件夹。
  • /*/build/*/*/build不会匹配任何内容。

答案 1 :(得分:0)

我相信它是因为你的三条忽略行来自根目录:

/build
/*/build/
/*/*/build/

当它们应该来自当前目录时:

./build
./*/build/
./*/*/build/

答案 2 :(得分:0)

尝试使用

build/
**/build/
<。>在.gitignore

如果已跟踪文件,请使用git rm --cached myfile将其从版本控制中删除,但将其保留在本地存储库中。从版本控制中删除后,不应在更改时检测到它们。