在你的CakePHP项目中使用Git

时间:2010-02-07 19:54:04

标签: php git version-control cakephp

我使用git作为我的主要版本控制系统,并且最近开始在我的CakePHP项目中使用git。这是我目前的.gitignore文件:

app/tmp
vendors/

正如cakephp git repo中所使用的那样,但是当我将项目部署到服务器时,这会给我带来更多的工作,因为我必须先进入并创建所有app / tmp /子目录,然后才能工作正常。有没有办法将其设置为忽略这些文件夹中的内容,但仍然将它们置于git控件下,以便在我将repo克隆到hoted目录时出现?

在我正在处理它时,我的git索引被重置时也遇到了问题,这导致我必须做更多的提交而不是必要的,还有任何想法吗?

3 个答案:

答案 0 :(得分:11)

Git只存储文件,而不存储目录,因此您可以将隐藏文件添加到该目录并提交。

  1. 从.gitignore
  2. 删除app / tmp /
  3. 触摸app / tmp / .keep
  4. git add app / tmp / .keep
  5. git commit
  6. 将app / tmp /添加到.gitignore

答案 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缩略图视图。