对于我的第一个phalcon项目,我决定选择fortrabbit-hosting,尽管我没有使用git的强大经验。我在一棵主树上工作,这个主树不断被推动并推动着。我有一些文件夹,里面充满了用户生成的内容(图片上传)。为了在做新提交后不删除这些文件,我把这个文件夹放到我的.gitignore文件中。但我怎样才能更新我的本地存储库与这个用户生成的内容? git pull或git fetch在这种情况下不起作用。那么使用git部署到现场舞台的正确方式是什么?git clone - 用户生成内容丢失
回答
您的代码库是Git的一部分,您可以使用Git将其部署到Web空间。 Web空间本身不在Git中。远程Git仓库同步或复制它的内容到网站空间。
这不是设置正确的.gitignore
规则的问题。 webspace上的文件可能会发生变化:例如,软件权限temp-,log-,cache-files或user-uploads。另一个例子是,当使用“网络安装程序”(认为WordPress更新)。所有这些更改都不会反映在Git中 - 因为将这些运行时数据存储在Git中并不是一个好习惯,并且因为没有办法将这些更改同步回Git仓库(所以您可以将这些更改重新导入) 。这不可能,也不是你想要的。
有应对这种局面多种方法,最常见的两种模式是:
最专业的是遵循12因子设计模式:代码和内容是严格分开的。用户生成的内容将被存储在场外。通过每次Git推送,代码库将被重新打包并重新部署。 Apps的存储是短暂的,在每个(原子)部署中,完整的代码库将被替换为新的内容。 Fortrabbit专业堆栈就是这样设计的。
更方便 - 尤其是对传统思维/设计 - 就像fortrabbit通用协议栈,在网络空间,其中在从Git的回购部署新的文件将被“同步”的解决方案,以“覆盖,但不删除”。 Web空间是持久的,必要时可以通过SSH/SFTP登录以获取并下载所有文件。
请仔细询问。这个问题可能不够普遍,对堆栈溢出感兴趣。
感谢您的详细回复!现在我知道如何处理git和fortrabbit。 –
- 1. asp.net内容丢失在动态生成的表
- 2. Android-标签内容丢失
- 3. 丢失TThreadList的内容
- 4. Liferay的 - 导出用户生成内容
- 5. WordPress用户生成的内容插件
- 6. 在Jenkins中生成用户内容
- 7. 用户生成内容的CMS?
- 8. AngularJS - 用用户生成的内容增加动态HTML内容
- 9. 在jQuery的clone()中丢失了什么?
- 10. 查找丢失的git存储的内容
- 11. git-instaweb和git-clone
- 12. hg clone git:.... aborts:连接失败?
- 13. git pre-commit脚本调用git clone并失败
- 14. Debian上的Git clone问题
- 15. 当选择发生变化时,DataGridComboBoxColumn会丢失其内容
- 16. Intellij Git Clone问题
- 17. git svn克隆,合并信息丢失
- 18. C pthread,指针丢失内容
- 19. UIPopOverController在旋转时丢失内容
- 20. Matlab的数字内容丢失
- 21. TextView内容丢失在屏幕锁
- 22. 丢失的Drupal节点内容
- 23. MVC5包url版本和内容丢失
- 24. FileUpload控件在PostBack上丢失内容
- 25. 重建表而不丢失内容Symfony
- 26. 内容从Mysql中丢失CMS
- 27. SmartGWT选项卡丢失GWT内容
- 28. JFrame丢失内容GridBagLayout与面板
- 29. Symfony Routing;用户生成内容中的内部URI
- 30. FOP生成PDF边框丢失
“git pull”或“git fetch”在这种情况下不起作用“......当然它没有。你让Git忽略这些内容:“我把这个文件夹放到我的'.gitignore'文件中。 (这可能是正确的选择,内容不应该用代码来跟踪,你的最终目标是什么? – Chris
感谢您的快速响应:-) ...我的最终目标是使用git从live-server获取所有数据,即使我已经设置了一些文件夹gitignore。有没有办法在获取所有文件时忽略gitignore? –
编号'git fetch'不能在文件上操作;它在_commits_上运行。无法使用Git“提取”未提交的数据。如果你真的需要在两台机器之间同步内容,请考虑一下;你真的可能不需要它 - 你应该单独考虑你的代码。 – Chris