我的.gitignore包含以下内容:
deploy/media/customoptions/options/*/*/70x/*
deploy/media/customoptions/options/*/*/200x/*
deploy/media/customoptions/options/*/*/*/*
我意识到这比实际需要的要多一些,但我一直在测试不同的模式以试图让它工作。
当我运行添加命令时:
git add deploy/media/customoptions/ --verbose --dry-run
我希望忽略其中一个匹配的文件。 为什么要添加?根据路径,它应该与上面的匹配。
deploy/media/customoptions/options/998/4325/200x/200-ntlrope.jpg
我尝试删除整个.git目录并再次git init
从空白平板开始,然后仍然添加该文件。
答案 0 :(得分:1)
使用我在评论中提到的内容来使用我的测试:
➜ ~ mkdir test
➜ ~ cd test
➜ git init
Initialized empty Git repository in /home/jhvisser/test/.git/
➜ mkdir deploy/media/customoptions/options/998/4325/200x/ -p
➜ echo "test" > deploy/media/customoptions/options/998/4325/200x/200-ntlrope.jpg
➜ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
deploy/
nothing added to commit but untracked files present (use "git add" to track)
➜ git add deploy/media/customoptions/ --verbose --dry-run
add 'deploy/media/customoptions/options/998/4325/200x/200-ntlrope.jpg'
➜ echo "deploy/media/customoptions/options/*" > .gitignore
➜ cat .gitignore
deploy/media/customoptions/options/*
➜ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
nothing added to commit but untracked files present (use "git add" to track)
➜ git add deploy/media/customoptions/ --verbose --dry-run
➜
因此,请尝试deploy/media/customoptions/options/*
我还使用deploy/media/customoptions/options/*/*/200x/*
和deploy/media/customoptions/options/*/*/*/*
进行了测试,这两项都有效。这些是您在示例中显示的内容。你可能做错了什么,所以试试我在测试中看到的东西。
答案 1 :(得分:0)
首先,您不必删除.git
目录来重新设置被忽略的文件。以下两个命令应重新设置所有内容并忽略.gitignore
:
git rm -r --cached .
git add -A
首先从Git中“删除”所有内容,然后重新添加,遵守.gitignore
个文件。
就你的模式而言,你似乎试图忽略
后的所有内容deploy/media/customoptions/options
在这种情况下,您可以使用globstar模式
deploy/media/customoptions/options/**/*
或仅仅是options/
deploy/media/customoptions/options/*
请记住,*
也匹配目录,Git supports ignoring whole directories,所以即使以下内容也可以使用
deploy/media/customoptions/options/
答案 2 :(得分:0)
由于答案already given描述它应该有效,所以这里有两个关于可能出错的想法:
deploy/media/customoptions/options/998/4325/200x/200-ntlrope.jpg
,git add
将很乐意将此文件的更改分段到索引。要么从存储库中删除文件(git rm --staged <filename>
),要么告诉Git永远不要检查此文件的修改(git update-index --assume-unchanged <filename>
)。.gitignore
放在哪里了?路径始终 relative 到此文件的目录。因此,您可以将文件放在目录deploy/media/customoptions/
中并向其添加options/
以忽略目录deploy/media/customoptions/options
及其所有内容。或者您可以使用完整路径deploy/media/customoptions/options/
将其放在存储库的根目录中。