一、核心部署流程对比
通过Git和SCP部署代码到云服务器,适用于不同场景需求:
方案 | 适用场景 | 传输效率 |
---|---|---|
Git | 版本控制/团队协作 | 增量更新 |
SCP | 单文件快速传输 | 全量覆盖 |
二、Git部署操作指南
通过SSH协议实现云端代码同步:
- 服务器安装Git环境
sudo apt-get install git
- 在服务器创建裸仓库:
git init --bare /var/repo/project.git
- 本地添加远程仓库:
git remote add deploy user@host:/var/repo/project.git
- 配置post-receive钩子自动同步代码到web目录
三、SCP文件传输方法
适用于快速传输单个文件或目录:
- 上传整个目录:
scp -r ./dist user@host:/var/www
- 指定端口传输:
scp -P 2222 config.ini user@host:/etc
- 保持文件权限:添加
-p
参数保留属性
四、自动化部署实践
结合Shell脚本提升部署效率:
#!/bin/bash
# 构建项目
npm run build
# SCP传输编译文件
scp -r ./dist root@host:/var/www
# 触发服务重启
ssh root@host "systemctl restart nginx"
建议将脚本加入Git钩子或CI/CD流程实现持续部署
Git方案适合需要版本追溯的开发项目,通过钩子机制可建立完整的部署流水线。SCP在紧急修复或传输编译产物时效率更高,建议根据实际需求选择或组合使用两种方案