我一直在研究一个被推送到heroku的网络应用程序.源代码托管在GitHub上.
因此git push将主分支推送到GutHub.
我的git分支'master'连接到Heroku应用程序' my-app-staging'
所以git push heroku推动应用程序my-app-staging.herokuapp.com
我已经创建了一个新的Heroku应用程序,它将成为'生产'应用程序,让我们称之为' my-app-prod'.
我创建了一个名为' production'(即git checkout -b production)的分支,我已经运行git push -u origin production使其成为GitHub的托管分支.
我现在想要将production分支链接到my-app-prod.herokuapp.com这样,当切换到production分支时,我可以简单地键入git push heroku(或者可能git push prod-heroku production或类似)并且瞧 - 生产分支被推送到生产应用程序.
将我的production分支链接到my-app-prodHeroku 的推荐方法是什么?
我已经沉迷于Heroku自己的文档,但他们都假设我已经使用heroku createCLI设置我的应用程序,而不是通过Heroku的网站设置我的应用程序,但是下面的段落让我头晕目眩:
输入很简单
git push staging master,git push production master当你按照上面的步骤操作时.然而,许多开发人员喜欢利用git的分支来分离正在进行的和生产就绪的代码.在这种设置中,您可以从主分支部署到生产,一旦在暂存应用程序上审阅后,就可以合并来自开发分支的更改.有了这个设置,推动是一个更小的棘手:
我最终想要的地方如下:
master:(a)git push将代码推送到GitHub,以及(b)git …我一直在玩网络开发技术以获得乐趣(是的,我应该得到更多),并且对生产阶段(即开发,测试,性能和生产环境)缺乏明确支持感到有些震惊.实际上支持不是这个词; 内容管理系统似乎积极地反对允许清洁分期的努力.
目前我正在使用Drupal.我很难找到社区如何解决这个问题.我见过的大多数帖子都建议在生产系统上复制开发中的步骤(阅读本文实际上缩短了我的生活一点点).我还听说过将生产数据推回给开发人员,以便他们可以添加增量功能.如果客户端不希望您将数据拉回到开发环境中,那么这可能是不可能的.
最后我的问题是:
您如何管理CMS的现实生产阶段性问题?
我来自一个背景,在那里推动生产感觉就像送人到月球,所以我可能需要放松一点.但是我仍然感兴趣的答案涉及源代码控制,允许生产回滚和测试.
我刚刚在一个文件夹上创建了一个GIT.我现在想通过"暂存"所有文件来添加该文件夹的内容.在GUI中,有没有办法选择所有文件.我有超过4000个文件,一次点击一个文件证明有点痛苦.
所以我是ROR和Heroku的新手,需要一些帮助.我已经创建了一个应用程序并已部署它; 但是,我想清除与之相关的数据库.意思是我想清除到目前为止已创建的任何用户(及其附加数据).
我基本上创建了几个假冒帐户来测试生产网站上的数据库是否有效,但现在我想清除它,并从一个新的数据库开始.
这可能不完全删除数据库吗?
任何帮助将是真诚的感谢.非常感谢您的宝贵时间!
该汞文档状态hg不支持等同于Git的指数开箱即用,并使用类似的行为扩展(记录或MQ)建议.
首先,我的实地经验非常少git,所以让我说明我对git中升级概念的理解:
git add选择将提交哪些文件.git add -p仅选择文件中的某些块以便稍后提交.git commit将以前选择的更改添加到存储库.因此staging area,对我来说,整体而言是一个浮夸的名称,用于选择工作副本中的哪些更改将在下一次提交中进行.
如果我还没完全关闭,那么,为什么每个人,包括官方文档,都说明Mercurial不支持这个?
我问,因为上面的确切工作流程在TortoiseHg中是微不足道的:

我不知道hgTortoiseHg使用什么命令,但是我再也不需要关心了.(它没有使用此AFAICT的任何扩展名)
git我缺少的分期概念还有更多吗?
当您修改工作目录中的文件时,git会告诉您使用"git add"进行暂存.
当您将新文件添加到工作目录时,git会告诉您使用"git add"来开始跟踪.
我对这两个概念有点困惑,因为我假设跟踪文件的更改不同于为提交提交它
我刚刚在几个单独的提交中创建了一大段代码.
所以我可以进行相关部分,提交,阶段,提交......等等,直到我提交了所有更改.
缺少的部分是我如何测试我是否正确分割提交.
也就是说,临时区域中的部分是否至少编译?
为此,我必须以某种方式使我的工作树与索引(临时区域)保持同步,而不会丢失稍后要提交的更改.
做正确的方法是什么?
什么是最快的做到这一点呢?
更新:
如何用magit做到这一点?
我的理解是,登台服务器的(合法)目的是测试部署过程,而不是代码的接受或功能.但是,我几乎从未找到过这种理解的人,最常见的替代方案是登台服务器与UAT服务器同义.谷歌搜索答案,我发现登台服务器定义为
很可能我发现的最糟糕的定义是在维基百科上,由于内容的短暂性质,我在这里引用,以及有人读这个问题可能会修复维基百科,并使我给它的任何链接变成一个反例而不是我所说的一个例子:
在网站设计中,暂存站点是一个用于在其投入生产之前组装,测试和审查其新版本的网站.这个阶段是在开发阶段之后.软件生命周期的暂存阶段通常在反映生产环境中使用的硬件的硬件上进行测试.登台站点通常与开发站点不同,并提供与开发或生产环境分开的QA区域.
通常,在将更新版本的软件部署到生产环境之前,已在暂存环境中测试更新.登台服务器将类似于客户端可以执行用户验收测试活动的生产环境.应在实时服务器(即生产环境)上部署系统之前传递暂存服务器/站点的测试.
事实上,正确使用该术语的唯一例子(我理解的是)是在StackOverflow上.例如,这个问题的主要答案,以及这个答案.
我想向我的同事证明(在知情人员中)分期与UAT和QA等不同.是否有一些规范定义,例如在一本书中首先定义了这个术语?显然,我发现的所有这些二手资料似乎都是常见用法的反映,但我认为这种常见用法主要是由那些更喜欢抛出流行语而不是精心区分并精确使用文字的人所塑造.
我目前有两种工作环境:development本地和productionHeroku.
我想staging在Heroku 上添加一个环境,看看在将应用程序推送给用户之前,一切都按预期进行.优选地,staging环境应具有与环境完全相同的设置和数据production.
完成上述步骤需要哪些步骤?
我真的不喜欢git临时区域,它只是让我的生活不必要地混乱.
是否可以禁用它以便所有已编辑和新文件都在一个上下文中?所以git diff显示了存储库和我的工作目录之间的差异(我不必也输入git diff --cached),所以git ci会检查我的整个工作副本(而不仅仅是已经上传的部分).
如果没有,替代方案(如设置配置)使我看起来没有升级也会很棒.
我没有选择更换为不同的DVCS,我不想学习喜欢临时区域.请不要发布建议这些:(
谢谢,-Shawn
PS:我在superuser.com上问了这个问题,https://superuser.com/questions/192022/disable-git-staging-area,但该论坛似乎发布的内容少得多(仅有118个标记的git,而这里只有4448个)
staging ×10
git ×6
deployment ×2
heroku ×2
commit ×1
database ×1
drupal ×1
git-branch ×1
git-gui ×1
mercurial ×1
php ×1
rake ×1
ruby ×1
split ×1
tortoisehg ×1