我的.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
答案 0 :(得分:4)
您应该只需要此规则per the documentation:
**/build
这将全局排除build
个文件夹。
如果之前添加过任何文件夹,则必须通过git rm
将其从Git中删除。
您的.gitignore
实际上错误 :
/build
和build/
相同;它们将匹配顶级build/
文件夹。/*/build
和/*/*/build
不会匹配任何内容。答案 1 :(得分:0)
我相信它是因为你的三条忽略行来自根目录:
/build
/*/build/
/*/*/build/
当它们应该来自当前目录时:
./build
./*/build/
./*/*/build/
答案 2 :(得分:0)
尝试使用
build/
**/build/
<。>在.gitignore
如果已跟踪文件,请使用git rm --cached myfile
将其从版本控制中删除,但将其保留在本地存储库中。从版本控制中删除后,不应在更改时检测到它们。