Git做服务端代码部署

1. 使用流程简介

Git做服务端代码部署示例图

1.1示例图简介:

  • serverPro:代表在服务器上部署production环境的git仓库
  • serverDev:代表在服务器上部署development环境的git仓库
  • gitee:远程私有仓库,团队开发用
  • 本地仓库:个人电脑上开发用的本地仓库

1.2使用流程简介:
在服务器上面分别创建好不同环境的git仓库并且记录下绝对路径,在码云(gitee)上创建私有仓库并且记录下https连接。创建好本仓库,并且配置好不同环境。团队成员开发的代码,统一提交到gitee,等开发自测完成后,部署到开发环境(development)给客户端开发人员开发;客户端开发完成后,接着提交测试人员测试。一切通过后,由后台管理人员,提交到生产环境(production),供客户使用。

2. 服务器端创建仓库

这些工作都在root或有管理权限的帐号下进行:

  1. 确保安装了git
  2. 为了安全起见,新建一个专门用于代码部署的无特权用户
    useradd -m user 创建用户
    passwd user 设置该用户的密码
  3. 新建一个目录作为要部署生产环境代码的根目录,如:mkdir /var/git/serverPro
  4. 将这个目录的属主和属组都改为上面新建的用户user
    cd /var/git
    chown user:user serverPro
  5. 切换到部署代码的专用用户:su user
  6. 进入项目根目录,初始化为git仓库
    进入仓库根目录:cd serverPro
    仓库初始化:git init
  7. 让仓库接受代码提交【重要】
    git config receive.denyCurrentBranch ignore
    git config core.worktree ~/www [可选]
    git config --bool receive.denyNonFastForwards false #禁止强制推送[可选]
  8. 一个空的git仓库就在服务器上建好了,仓库的地址为:
    ssh://user@ip/var/git/serverPro

3. 本地repo配置

  1. 通过 git clone 从 服务器仓库上将代码获取到本地
  2. 将服务器添加到远程仓库列表,使用名字来区分不同的服务器 :
    git remote add serverPro ssh://user@115.28.49.164:/var/git/serverPro
    1. 添加gitee仓库: git remote add gitee https://gitee.com/leaveslife/ghost.git,添加其它的类似
    2. 将本地代码提交到服务器上面git push serverPro master
    3. 拉取服务端的代码git pull serverPro master
    4. 如果是’git clone’创建的仓库,那么默认origin是clone的服务器地址
    5. 使用sourcetree管理时,也可以查看到添加配置的信息,提交到不同的服务器仓库

4. 更新服务仓库的代码

将本地代表提交到服务器仓库,服务器仓库的代码记录已更新 ( git status 查看记录) ,但是没有在服务器的git根目录更新,需要我们做进一步处理

  1. 更新服务端 git 仓库状态并检出文件
    进入服务器git仓库目录:cd /var/git/serverPro
    更新仓库代码:
    git update-server-info
    git checkout -f
    OR:
    git checkout branch_name # 需要更新的分支

  2. 通过ls来查看代码是否更新

  3. 如果使用的是pm2管理的node程序,使用pm2 reload serverPro来重启服务进程

  4. 上面的功能已经满足我大部分需求,如需更多高级用法,可看参考来源

5. 参考