记一次git 自动化部署设置

  • 怎么连接阿里云
  1. 平常都是通过阿里云的管理终端进行命令行了,就是网页版的终端。但是在进行git来拉取代码的时候,要使用ssh。很尴尬,生成的公钥,无法复制到github的setting上去。总不能自己一个个敲键盘输入吧。所以直接google怎么进行ssh连接。
  2. 本人是使用deepin的,所以谷歌到openssh-client可以直接设置。
  3. 先参考阿里云的文档点击
    按照步骤来,一步步进行
    步骤
  4. 最后成功登录远程阿里云服务器。


    成功

-使用git hooks进行项目自动部署

  1. 建议google先搜索一下 git hooks
  2. 在阿里云的服务器中
    cd /root // 切换到root,这个暂无要求,看你喜欢的,我就喜欢在root目录下新建目录
    mkdir - p opt/repo && cd opt/repo && git init --bare test.git // 新建目录,切换到repo目录下,同时初始化成裸仓库
    git init 与git init --bare的区别
  3. 然后cd test.git/hooks && cp post-update.sample post-update && vim post-update
  4. 看了很多教程,写的太多了,还不如直接写个bash脚本进行,shell教程 多看看教程,我下面的脚本很简单的,简直muggle
    粘贴下面内容
#! /bin/sh

# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".

unset GIT_DIR # 千万不要忘记写,我已经栽了一次坑

echo "begin cd path"

DIR_ONE="/root/var/build/management"
cd $DIR_ONE

echo "cd dir end"

if [ -d $DIR_ONE ];
then
        echo "remove dir"
        cd /root/var/build
        rm -rf management
        mkdir management && cd management
        echo "begin git init"
        git init
        git remote add origin "/root/opt/repo/test.git"
        git clean -df
        git pull origin master
        cd $DIR_ONE
else
        echo 'fuck'
        mkdir -p $DIR_ONE
        echo 'make dir success'
fi

echo "git pull end"
exit 0

warn: 不要忘记让脚本有权限继续执行chmod +x post-update

  1. 上面的操作都是在服务器中进行的,现在我们要到本地的电脑上(就是自己的电脑进行操作)
  1. 新建文件夹demomkdir demo,切换到demo目录下cd demo,然后初始化git init ,然后新建一个文件touch a.html,然后进行发布上传的工作,相关命令行git add prod root@hostIp(阿里云的公网ip地址):/root/opt/repo/test.git(服务器上git init --bare 初始的.git文件地址,一定要绝对完整的路径 git add . && git commit -m'test' && git push prod master,然后输入以上命令行之后,会要求你输入登录阿里云的密码,然后输入密码,不出意外就会出现
    成功的样子
    说明成功了
  1. 然后登录到阿里云的服务器,cd /root/var/build/management ls,就能看见你上传的代码了。
  2. 写的不好,自己看看能懂。。。哎,跟看别人文档一样,不知所谓。。。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git服务器搭建过程 参考网上资料搭建git服务器过程记录 如下: 需求 硬件需求:一台Ubuntu或者debia...
    廖全磊LesterLiao阅读 4,726评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • 前言 在去年,心血来潮去买了个阿里云的服务器,几番折腾下,用WordPress第一次搭建了自己的博客网站,然后过了...
    Leihungjyu阅读 12,665评论 2 7
  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 16,019评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 9,363评论 0 11