处理Symfony2项目和Git分支

处理Symfony2项目和Git分支,git,symfony,composer-php,phpstorm,git-branch,Git,Symfony,Composer Php,Phpstorm,Git Branch,我在Symfony2中有一个项目,它在Git中维护了几个分支:开发,测试和其他一些分支。每个分支上的文件composer.json不同,因此我需要始终运行composer update,以更新依赖项和/或删除可能导致不必要行为的旧库或新库 现在我正在学习并尝试使用BDD:Behat+Mink编写一些测试,我不想在develope分支上进行更改,因此我创建了testing,并在该分支上进行了所有这些更改,但正如我所说的,主要问题是在切换分支时运行composer update 处理这个问题的正确方

我在Symfony2中有一个项目,它在Git中维护了几个分支:
开发
测试
和其他一些分支。每个分支上的文件
composer.json
不同,因此我需要始终运行
composer update
,以更新依赖项和/或删除可能导致不必要行为的旧库或新库

现在我正在学习并尝试使用BDD:Behat+Mink编写一些测试,我不想在
develope
分支上进行更改,因此我创建了
testing
,并在该分支上进行了所有这些更改,但正如我所说的,主要问题是在切换分支时运行
composer update


处理这个问题的正确方法是什么?你会怎么做?有什么建议吗?我开始疯狂地多次运行同一命令,然后在PHPStorm上同步本地代码(Windows主机)和远程代码(Linux服务器)。想法

我想到了一些不同的事情。一些是更好的实践,另一些可能会缩短周转时间,这取决于您要付出的努力:

基本:

  • On.lock-down-确保每个分支都有一个提交的锁定文件。这是有原因的。似乎很少有项目会欣赏SemVer,即使是那些项目也会让一个突破性的变化不时潜入
  • 特定运行composer更新时,确保针对不同分支的特定软件包(例如:
    composer更新原则/dbal
    )。
    • 更好的是,根本不要运行
      update
      。这可能是错误地更新了您不打算更新的分支中的包。最好使用
      composer安装
  • 为什么不能两者兼而有之?是否也值得为该分支单独克隆一个项目?如果你看到自己经常在这两个地方工作,那么就不用再为切换分支而头痛了。毕竟,磁盘空间很便宜。
    • 从本地删除除您感兴趣的分支以外的所有分支。将Git推/拉设置为“简单”,以避免任何意外提交
中等或更高

    不要懒,去喝咖啡吧~强/考虑一下。你可以看到一个例子。享受空闲的自行车,喝杯咖啡,绘制我们的地图,然后进行下一次测试
  • 自己动手-安装本地实例。我注意到,在我们的团队添加了一个本地Satis实例并镜像了我们的主要依赖项之后,我们的项目安装有了显著的改进
  • VM-将项目转换为使用VM。基于GUI的工具,例如或,可以让您轻松地了解事物。这不会解决您的作曲家问题,但减少与远程同步的往返可能是值得的时间投资
  • 配置调整-根据每个分支更改composer的供应商目录。有关详细信息,请参阅。
    • 注意:由于意外的/特定于分支的权限错误等原因,这很可能会给您的测试增加一些复杂性
  • 平台。sh
  • 使用Platform.sh设置帐户
  • 利润
希望以上的一些组合将帮助您找到一些改进