Deployment 开发过程、部署、GitHub

Deployment 开发过程、部署、GitHub,deployment,github,capistrano,web-deployment,Deployment,Github,Capistrano,Web Deployment,我正试图为我们的团队制定一个开发流程 我们有3/4的分散开发人员随时在我们的代码库上工作 我们已经开始使用GIT,其想法是,这项工作不仅仅是一个实时修复,然后它们会分叉主分支 每个人在服务器上都有自己的开发环境,我们有一个登台环境,它应该始终是主分支的副本 开发人员在本地进行开发,然后合并回主分支,然后主分支将其更改推送到临时服务器() 如果全部批准,则应实时复制更改。我想以某种方式实现自动化,但不确定具体如何实现。我们使用的是GitHub,所以我确信有自动部署脚本 不过,我们只有一台实时服务器

我正试图为我们的团队制定一个开发流程

我们有3/4的分散开发人员随时在我们的代码库上工作

我们已经开始使用GIT,其想法是,这项工作不仅仅是一个实时修复,然后它们会分叉主分支

每个人在服务器上都有自己的开发环境,我们有一个登台环境,它应该始终是主分支的副本

开发人员在本地进行开发,然后合并回主分支,然后主分支将其更改推送到临时服务器()

如果全部批准,则应实时复制更改。我想以某种方式实现自动化,但不确定具体如何实现。我们使用的是GitHub,所以我确信有自动部署脚本

不过,我们只有一台实时服务器,所以如果只将主分支上更改的文件部署到实时服务器上就好了

有什么办法吗

这种做法合理吗

还有其他意见/警告吗


这样做需要负载平衡器吗?

我的公司紧随其后

我们为生产创建master分支我的案例是针对web开发的

我们要做的是

开发者从master中找到他们的特性/缺陷

git checkout -b feature/featureA
git checkout -b bug/B
通过这种方式,我们将获得已发布行中的新代码。在暂存服务器中,我们使用测试分支。因此,当任何特性想要进行测试时,它将合并到该分支

在登台服务器中,我们使用

git checkout testing
git pull
发布分支处理热修复程序,每个热修复程序将在合并到主程序之前合并到此分支。其思想是,发布分支将在合并到master之前打包一些提交,如果出现问题,它只需使用如下命令

git reset --hard HEAD^
暂时的

让我们看看我的完整工作步骤

git checkout master # Go to Master
git checkout -b feature/New  # New branch
来自boss的电子邮件用于修复关键错误

git stash 
git checkout master
git checkout -b hotfix/a
做事

git commit
git checkout release
git merge hotfix/a
git checkout master
git merge release # In case that you want to pack all ready to production
生产中

git tag -d previous
git tag previous
git pull
哎呀!不起作用

git checkout previous
新提交合并

git checkout master
git pull
继续我的工作

git checkout feature/New
git stash pop #Restore workspace
git commit
git checkout testing # ready to mix a test
git merge feature/New
准备发布该功能

git checkout release
git merge feature/New
这是因为测试分支中的所有东西都已准备好部署。所以,当将所有准备就绪的特性合并到发布分支时,现在,您可以进行最终测试了

当一切都投入生产时,我们就这样做了

git checkout testing
git merge master
git checkout release
git merge master
自动化脚本


我认为您可以查看
.git/hooks/post commit.sample
,以便在提交代码后连接一些脚本?无论如何,我从不使用它。

谢谢你,我根据你的帖子和你链接的博客做了一些修改。