我使用git作为我的主要版本控制系统,并且最近开始在我的CakePHP项目中使用git。这是我目前的.gitignore文件:
app/tmp
vendors/
正如cakephp git repo中所使用的那样,但是当我将项目部署到服务器时,这会给我带来更多的工作,因为我必须先进入并创建所有app / tmp /子目录,然后才能工作正常。有没有办法将其设置为忽略这些文件夹中的内容,但仍然将它们置于git控件下,以便在我将repo克隆到hoted目录时出现?
在我正在处理它时,我的git索引被重置时也遇到了问题,这导致我必须做更多的提交而不是必要的,还有任何想法吗?
答案 0 :(得分:11)
Git只存储文件,而不存储目录,因此您可以将隐藏文件添加到该目录并提交。
答案 1 :(得分:4)
如上所述,git只存储文件,而不是目录。默认情况下,cake的.gitignore文件会忽略tmp文件夹中的所有内容,以防止将tmp文件添加到存储库中。
您可以(并且应该)在创建项目后执行此操作:
cd /my/app
git add -f tmp
将执行此操作:
$ git status
# On branch master
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: tmp/cache/models/empty
# new file: tmp/cache/persistent/empty
# new file: tmp/cache/views/empty
# new file: tmp/logs/empty
# new file: tmp/sessions/empty
# new file: tmp/tests/empty
因此,您的tmp文件夹结构已准备好提交,但tmp目录中的所有其他文件将(继续)被忽略。
答案 2 :(得分:1)
我的.gitignore文件。
tmp/*
[Cc]onfig/core.php
[Cc]onfig/database.php
webroot/files/
webroot/img/photos/
!empty
.DS_Store
如果你注意到我有!空,这使我免于创建.keep文件,所有这些都是SVN之前的。最后,您还会看到我将此配置用于[Cc]注明的cakePHP 1.x和2.x项目。我有一些文件夹设置,我存储用户文件,所以我也总是忽略它们。最后,.DS_Store忽略了我为我的项目创建的MAC缩略图视图。