通过git实现应用自动部署
- 2017-06-09
- koko
- git
koko近期维护的几十套应用有频繁的更新,体验了重复去每个服务器手动更新维护的枯燥与无奈,决定寻找方法减少重复的动作,解放双手。 于是借用git+bash实现了应用的自动部署。
现在想回头来总结点通用的经验,却发现没啥好写的。 因为实在太简单了,仅仅是利用了git的post-receive钩子。
原理:
1、本地提交代码到服务器
2、服务器收到代码提交后触发post-receive钩子
3、运行post-receive中配置的bash脚本完成更新
咯~,够简单吧,就三步。
在调试post-receive时遇到一个坑。post-receive中执行的git命令默认会使用GIT_DIR变量,但服务器上这个变量不符合预期,执行git pull命令时会报错
Not a git repository: ‘.’
在post-receive中git代码前面加上下面这句代码即可
unset $(git rev-parse --local-env-vars)
至此就实现通过git自动部署源码。