彭剑的博客

网络日记

  • 开源项目
  • 关于作者
  • 分类: Github

    关于团队贝博app手机版利用git的webhook,部署项目

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

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

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

    第一步 git add -A

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

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

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

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