git - 在单个应用程序上具有多个开发人员的开发环境

标签 git phpstorm development-environment

我正在寻找一种优化/改进我和我的同事处理应用程序的方式的好方法。

我们目前都在 MacBook Pro (2016) 上的 PhpStorm 中工作,这是我们网络中的 Ubuntu 服务器和映射到我们机器的 SMB 共享上的工作副本(我们有时会编辑相同的文件,这很不方便)。我们使用 Git 作为源代码控制,并且有 1 个我们都在其中工作的分支。

我们注意到通过网络共享使用 PhpStorm 时出现性能问题,我们的应用程序非常大,PhpStorm 对所有内容进行索引使得它一直卡住并且感觉没有响应。

我们正在寻找一种方法来改进我们的工作方式,简化我们应用程序的开发并消除我们在网络共享/工作副本组合方面遇到的性能问题。

我们正在考虑每个人在我们的机器上都有一个本地工作副本,有一个虚拟化的网络服务器(Vagrant),并且都彼此分开运行应用程序。这将解决网络问题,但会带来其他问题,例如,如果我更改数据库,这些更改也必须在我同事的工作副本上完成。

此外,我们一直在更改相同的文件,我们最不想做的就是每次更改时都修复文件冲突,然而不得不 pull 另一个开发人员在白天所做的每一次提交,再加上必须做他们的数据库手动更改。

TL;DR,什么是与 3 名开发人员一起开发 1 个应用程序的好方法。

最佳答案

一个很好的改进肯定是在您自己的应用程序的本地副本上工作。正如您所描述的那样,这将解决性能问题,但会给您带来有关数据库更新的问题。

管理数据库更新的一种方法是为每个数据库架构更改使用迁移文件。假设您进行了更改,您将此更改添加到一个新的迁移文件中,该文件被添加到 git 存储库中。有了这些文件,每个人都可以在他们的本地开发数据库之上应用所有迁移,以保持他们的数据库是最新的。它还使测试变得非常容易,因为您可以随时重置数据库并再次应用迁移。

您可能会看看其他人是如何应用它的。有开箱即用的后端框架(例如 Laravel 用于 PHP)。

关于git - 在单个应用程序上具有多个开发人员的开发环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43734718/

相关文章:

git - 我可以交互式地从另一个 git commit 中挑选 hunks 吗?

PHPStorm - 找不到内部对象的方法

php - 如何将Xdebug 2.2.3(PHP 5.53)与PhpStorm 7.0集成

node.js - PhpStorm/WebStorm 尝试安装新的 NPM 包时出现 "Please specify npm or yarn package"

development-environment - 如何在 Sublime Text 编辑器中获取大纲 View ?

windows - 我应该为 Windows 7 分区留出多少空间?

eclipse - HP Fortify UI 定制

git filter-tree 和修改子模块

git - 在 git init 之后自动提交一个空的 .gitignore 文件?

git - GIT 中的冲突解决或冲突避免?