【问题标题】:Why isn't GIT tracking my cakephp migrations Plugin?为什么 GIT 不跟踪我的 cakephp 迁移插件?
【发布时间】:2013-01-07 22:20:30
【问题描述】:

我正在使用 GIT 部署我的 cakephp 应用程序,几天前我开始在我的应用程序中使用迁移插件(由 cakeDC 提供)来简化数据库版本和更改。

在我的本地开发机器上安装迁移插件后,我提交了更改并将其推送到我的生产服务器,并尝试从那里运行迁移插件。 在查看服务器很长一段时间后,我意识到它并没有抓取所有的迁移插件,但是以下内容发生了变化:

app/Config/bootstrap.php 附加了以下行 CakePlugin::load('Migrations');

Plugin 文件夹现在有一个 Migrations 文件夹,但它是空的。

我通过 FTP 上传插件解决了这个问题。我在上面运行了一个 git status,它显示工作目录是干净的......

为什么 GIT 不跟踪我的 Migrations 插件文件夹内容?

【问题讨论】:

  • 发布.gitignore的内容
  • .clpprj log/ tmp/* git/* .git web/app/tmp/logs/* web/app/tmp/sessions/* web/app/tmp /tests/* web/app/tmp/cache/models/* web/app/tmp/cache/persistent/* web/app/tmp/cache/views/* !empty web/stats/* web/error/* favicon .ico cgi-bin/* ssl/*
  • Answer: Plugin 文件夹没有被跟踪,因为它是作为子模块安装的。我发现安装插件的第一个说明包括将其设置为 git 子模块(当时我不知道那是什么......)我已经确定它是通过这个线程以这种方式安装的:无法跟踪文件在 Git 子模块中 @Chris Herbert 感谢我使用此线程进行删除的回复:如何删除 git 子模块?我希望这对将来的某人有所帮助,因为我玩得很开心。下次我要在使用命令之前阅读它。谢谢!
  • 将插件作为子模块进行跟踪不一定是个坏主意,但您需要注意这一点(即,使用“git clone --recursive”等)。
  • 我总是将我的插件作为子模块进行跟踪。 (随着新作曲家支持的到来,这将不是必需的,但现在它是一个很好的解决方案。)

标签: cakephp plugins migration cakephp-2.0 cakedc


【解决方案1】:

插件文件夹没有被跟踪,因为 GIT 认为它是一个子模块。

我遇到了这个问题,因为我使用 GIT 将此插件克隆到插件目录中。并且 git 没有添加它,因为它本身就是一个存储库。当 GIT 没有将它添加到我跟踪的文件中时,我手动进行了:git add app/Plugin/Migrations/ 这创建了一个 gitlink 并且本质上就像一个子模块,正如在这个线程中看到的那样:

Git - how to track untracked content?

由于当时我不想将插件用作子模块,因此我使用以下命令更正了此问题:

git rm --cached app/Plugin/Migrations

使用 git status 我可以看到 GIT 现在正在识别我的插件

然后我可以继续使用git add .git commit -m "finally adding the plugin"

我希望这对将来的人有所帮助。

谢谢!

【讨论】:

    猜你喜欢
    • 2013-08-27
    • 1970-01-01
    • 2013-06-04
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 2012-12-29
    相关资源
    最近更新 更多