我是Git初学者,提出了工作流程问题。我学到了很多命令,我知道事情是如何运作的,但我似乎无法找到合适的工作流程。喜欢有一些建议。 [注意,我是唯一一个从事我的项目的开发人员]
一位朋友曾告诉我,最好在live服务器上工作,而不是在localhost上工作以避免遇到环境特定问题。这是真的吗?
我为所有Drupal网站使用相同的基本主题。当我在其中一个进行更改时,我目前需要将其复制并粘贴到其他大约10个地方。有没有办法将这个基本主题保存在一个地方并让其他网站从中抽取? Github可能吗?
如果我想对代码库和数据库进行“完整”备份 - 唯一的方法是将数据库导出为sql文件并提交整个内容吗?
感谢您的帮助!
特里
答案 0 :(得分:5)
通常,您应该尽可能靠近生产服务器在服务器上运行测试,而不是实际的实时服务器,因为这会在测试期间中断实时站点。由于Drupal旨在在各种服务器上运行良好,因此使用类似的服务器并不相关。
您应该使用git pull而不是copy-paste。因为git具有分散设计,所以你并不需要像github这样的中心位置。如果这对您的工作流程有用,请使用它,但如果没有,您可以直接从一台服务器拉到另一台服务器。
Drupal没有很好的解决方案在数据库中存储如此多的配置信息并保持同步。同步整个数据库是一种方法。许多模块还具有可导出功能,它基本上将数据库中的数据保存到代码中,因此您可以将其与其余代码同步。 Features可能是尝试使用可导出模型的最简单方法,看看它是否适合您。
答案 1 :(得分:2)
如果你对版本控制系统的整体想法不熟悉,那么你最好只是双脚跳进去。随着你的到来,一切都会开始变得有意义。当然,就其本质而言,你不可能做任何永久性伤害,因为你可以来回滚动。
一个坚定的建议:经常提交。每次进行有效的更改时,都要提交。较小的提交比大的提交更容易处理。例如,如果您需要撤消损坏的更改,那么如果您的提交是原子的,那么您更有可能在不删除同时提交的工作代码堆的情况下撤消它。
答案 2 :(得分:1)
用于转储drupal db regulary我使用
A) 用于创建名为“db”的空的未连接分支的git别名 在http://gist.github.com/360294
找到别名b)中 以下命令,使用伟大的maatkit工具来清空 一些不感兴趣的表并将数据库转储到单独的文件中, 没有评论
mk-find DBNAME --tbllike "cache%" --exec "TRUNCATE %D.%N";
mk-find DBNAME --tbllike "watchdog" --exec "TRUNCATE %D.%N";
git checkout db && \
cd /GITROOT/db && rm -rf * && \
mk-parallel-dump -d DBNAME -- mysqldump --skip-extended-insert --skip-comments --skip-lock-tables '%D' '%N' \> '%N.sql'
答案 3 :(得分:0)
一般来说,环境越接近越好。在尝试诊断和追踪问题时,这一点尤为重要。并不是说你的每个环境(dev,qa,prod等)都不可能有不同的设置,但我肯定会说如果可能的话,最好保持一致。
为共享主题设置git存储库是一个好主意,可以通过复制/粘贴更改来删除问题继承。无论是在自己的服务器上设置git存储库还是使用像github这样的服务,都是个人偏好的问题。
是的,要获得备份中的所有内容,除了拥有代码存储库之外,还需要执行数据库的sqldump。话虽如此,请自由使用Features模块,尽可能多地获取代码中的配置。这在环境之间移动时也很有用,并且能够跟踪代码的其余部分跟踪更改的版本。要添加到您的功能中的一些最重要的项目将是内容类型,视图,权限,变量(通过Strongarm),块放置(通过Context),菜单等。