我有一个git存储库,此时我尝试了很多东西以实现以下目的:
我的git
个回购邮件中的目录结构是:
<project_name1>/bin/
<project_name1>/bin/data/
<project_name1>/src/
<project_name2>/bin/
<project_name2>/bin/data/
<project_name2>/src/
除了bin数据文件夹中的文件之外,我想使用.gitignore来忽略bin文件夹中的所有内容。
#ignore the bin folder...
/*/bin/*
#...but don't ignore anything in ./bin/data/ folder
!/*/bin/data/
!/*/bin/data/
以上失败了,这是我尝试过的许多轻微变化之一。但问题仍然存在。文件夹bin/data
和文件夹bin/data/*
中的所有文件都将被忽略。
我做错了什么?
答案 0 :(得分:0)
几乎所有忽略麻烦的答案都是
git check-ignore -v $path
您显示的规则不会排除该文件夹。我打赌你在全局或回购排除列表的某个地方有一个bin/
规则。
答案 1 :(得分:0)
我不确定你到底尝试了什么,但是这个存储库目录结构:
a/bin/bar
a/bin/data/foo
b/bin/data/foo
使用此.gitignore
:
/*/bin/*
!/*/bin/data/
使用git add -A
后会导致此状态输出:
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a/bin/data/foo
new file: b/bin/data/foo
发言:a/bin/bar
中的bin/data
文件将会跟踪{{1}}。
我使用的是git 1.9.4版。有关详细信息,请查看documentation。