关于团队开发利用git的webhook,部署项目

最近刚刚入职一家初创企业,由于项目特殊项目开发比较急,多人开发导致每天都会出现多人文件丢失和错误的问题。

我们先聊一下webhook是什么东西又能帮我们解决什么问题,在多人开发的过程中我们可能职责明确,有前端和后端开发人员,前端人就是我们看到的图片动画之内的东西,后端就是我们通过我们输入的信息给我们回应的内容,就是在我们的开发过程中,我们后台渲染一个视图模板,前端根据PS图片实现效果,我们的交接点就是我们后台会给前端一些数据,如果一个人开发就没问题,反正都是自己写,怎么方便怎么来,但是我们是团队开发,可能同时有多人进行开发,开发的过程就会产生,同一个文件多人开发编辑并且提交到我们的服务器,就会有有重复代码,或者删除或修改对方的代码,这样我们的git就诞生的,为我们解决多人同时开发的过程与到的问题,在我们开发能内网测的项目git,使用起来也不错误,可是问题有又来了,我们开发的项目依赖第三方平台,而且我们又是多人开发,这样我们原来只用git解决的问题,开始满足不了团队开发项目了,这时候我们就考虑利用webhook实现自动部署代码,

看名字就能大概猜到web就是网页的意思hook翻译就是钩子的意思,如果一起读就是web的钩子,我们知道由来了,我们在来看看我们要怎么实现这样的设计,首先我们在内网搭建一个git服务器,让内网的开发人员内提交代码,这时候他只有提交,但是我们外网的怎么访问呢?让人通过FTP在上传吗?,这样的效率太低了,也不可行呀,那还不如用FTP上传算了,这时候我们的webhook开始出场了,webhook有多个触发的动作,就是我们每次提交代码在GIT服务器,会经过四步,

第一步 git add -A

第二步 git commit -m ‘本次提交的说明’

第三步git pull origin master 拉取远程代码(就是git服务器上的代码)

第四步git push origin master 提交代码到git服务器

通过这几步我们发现等于如果我们开发人员修改代码提交到git服务器的时候,我们就需要外网的服务器也马上同步最新的代码,所以我们在git项目中添加一个webhook动作就是git push origin master的时候,我们告诉线上服务器马上更新我们最新提交的代码,这个时候我们的本地开发就和外网的服务同步了,我们就可以实时的查看我们修改的的效果了,这个过程因为我们外网的是内测地址是没有问题,如果是线上的正式项目不能这样干的(^~^)我们这里的测试服务器也在内网上面,所以其实我们是同步了内网的测试项目,正式项目我们是通过分支来解决的,在内网的测试地址完全测试没有问题我们才会合并到我们的线上项目,在合并的过程中,我才开始正式的同步线上代码,这个过程看似复杂,但是在这样多人开发,是比较适合的。