This page looks best with JavaScript enabled

自建Git服务器,并自动部署代码

 ·  ☕ 2 min read  ·  🔮 Yu · 👀... views
  • 背景:
    • 本地Windows已有写好的代码,并且PowerShell可以直接通过ssh连接到服务器
    • 本地Windows已经安装好Git
    • 一台有普通用户权限的Linux服务器
  • 目的:
    • 需要使用Git来管理代码
    • 自动部署到服务器,省去每次写完复制的步骤

服务器端

  1. 在服务器端建立一个空的git项目1,后续我们就将代码提交到这里

    1
    2
    3
    4
    
    cd ~
    mkdir mygit #新建文件夹存放git项目
    cd mygit
    git --bare init #在服务器端建立了一个空的git项目
    
  2. 编辑hook文件并给予权限2

    1
    2
    
    vim ~/mygit/hooks/post-update   #写入部署代码的脚本
    chmod +x ~/mygit/hooks/post-update  #给予脚本执行权限
    

    其中在post-update文件中写入如下脚本,注意修改高亮行

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    
    #!/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
    DIR_ONE="/root/nginx_docker/html/zzo_blog/blog.iyu.icu/"  #此目录为服务器部署代码的目录
    cd $DIR_ONE
    
    git init
    git clean -df
    git remote add origin ~/mygit   #注意要与之前服务器建立的git仓库路径匹配
    git pull origin master
    
注意: 一定要unset GIT_DIR清除变量, 不然会引起remote: fatal: Not a git repository: ‘.’错误。

本地

  1. 在本地初始化git仓库,并加入文件提交代码,注意修改高亮行
    1
    2
    3
    4
    5
    6
    
    cd myprogram #进入我们存放项目的文件夹
    git init #建立初始化仓库
    git add . #添加项目中的文件
    git commit -m "first!" #提交更改
    git remote add origin ssh://iyu@iyu.icu:2333/home/iyu/mygit #添加远程仓库
    git push origin master #将更改push到远程仓库中去
    
  2. 后面本地提交代码并push到远程仓库只需要
    1
    2
    3
    4
    
    cd myprogram #进入我们存放项目的文件夹
    git add . #添加项目中的文件
    git commit -m "first!" #提交更改,引号内提示信息可以自定义
    git push origin master #将更改push到远程仓库中去
    

有参考:

点击链接末尾的回车符可以跳转回引用处~


  1. git新建项目并上传到服务器 - 简书
    https://www.jianshu.com/p/fcb5cee92131 ↩︎

  2. 用 Git 钩子进行简单自动部署 | Aotu.io「凹凸实验室」
    https://aotu.io/notes/2017/04/10/githooks/index.html ↩︎


Yu
WRITTEN BY
Yu
🎓 College Students 📐Physics 💾 Programmer