2016-11-20 119 views
0

我试图设置.gitignore但有问题。我有一个目录flask-test,其中包含子目录apptmpflask。我想忽略flask目录。我的init里面flask-test新的存储库:.gitignore不会忽略指定的文件夹

git init 
git remote add origin https://github.com/username/flask-test.git 

我然后创建的.gitignore:

sudo nano .gitignore 

gitignore内容是,像这样:

flask 

这是正确的吗? ^或应该是flask/

我再补充,提交的所有文件,并推动:

git add . 
git commit -m "First commit" 
git push -u origin master 

但是当我检查库中的“的.gitignore”文件不存在。然后,我尝试之后增加它像这样:

git add .gitignore 
git commit -m "Adding gitignore" .gitignore 
git push 

现在这个文件是我的仓库里,不过flask目录仍然存在。我究竟做错了什么?

+0

你不应该说'烧瓶/ *'或'烧瓶/'? –

+0

等待。你是什​​么意思忽略文件不在那里?它是'.gitignore'的前导期'.',因此只有当您执行'ls -a'时才可见。 –

+0

看起来您的操作方式与您所描述的顺序不同。特别是,看起来好像你在'nano .gitignore'之前做过'git add .'。你确定你按照你在问题中写的顺序做了什么吗?它有所作为。 – janos

回答

2

如果你想忽略文件夹,你必须使用**

例如,如果您希望忽略任何走向深沉调试& Release文件夹:不管当前的位置

**/Debug/ 
**/Release/ 

这会忽略使用该名称的任何文件夹的文件夹中

+0

我不认为这是正确的。只有名字后面加上'/'对我来说一直都是足够的,例如为Python项目放置'__pycache __ /'.gitignore。领先的'**'工作原理相同,但没有必要。 –

+0

如果您想要忽略内部文件夹,并且不仅仅是最上面的文件夹,您需要**,因为您知道您指的是文件夹而不是文件,所以它也是最佳做法。 – CodeWizard

+0

'/'足以区分文件夹...和AFAICT,'**'根本不需要,请参阅[本要点](https://gist.github.com/tangledhelix/9da5a314fffe22e3f3f2dcbe5342be68)。现在,'**'确实有用途,例如'/ foo/**/bar'就没有其他方法可以忽略隐藏在'/ foo /'目录下树中的任何'bar /' - 但是我正在谈论这种情况,在这种情况下,不管在哪里匹配目录名它发生。 –