使用Git自动更新实现本地一键推送到正式服务器项目中
封面图
•
2025-10-13
•
git
170
0
0
0
使用 Git 实现本地一键推送到正式服务器(生产环境)项目,是一种常见的自动化部署方式。这种方式可以大大提高开发效率和部署的可靠性。 下面是一个完整的流程,帮助你实现“**本地一键推送**”到正式服务器: --- ## ✅ 目标 在本地修改代码后,通过一个命令(如 `git push` 或自定义脚本),将代码自动推送到正式服务器,并完成部署。 --- ## 🧰 所需工具/环境 - 本地开发环境(Git) - 正式服务器(Linux 系统,比如 Ubuntu) - SSH 访问权限 - Git 在服务器上已安装 - 可选:CI/CD 工具(如 GitHub Actions、Jenkins) --- ## 🛠️ 步骤一:在正式服务器上创建 Git 仓库 1. 登录到你的正式服务器。 2. 创建一个目录用于存放项目: ```bash mkdir /var/www/myproject cd /var/www/myproject git init --bare ``` > 这个目录是一个 **bare repository**,不包含工作区,只用于接收推送。 --- ## 🛠️ 步骤二:在本地配置远程仓库 1. 在本地项目中添加远程仓库地址: ```bash git remote add production user@your-server-ip:/var/www/myproject ``` - `user` 是服务器上的用户名 - `your-server-ip` 是服务器 IP 地址 2. 验证远程仓库是否配置成功: ```bash git remote -v ``` --- ## 🛠️ 步骤三:设置服务器端的 post-receive 钩子 1. 在服务器上的 bare 仓库中创建 `hooks/post-receive` 文件: ```bash nano /var/www/myproject/hooks/post-receive ``` 2. 添加以下内容(根据你的项目路径调整): ```bash #!/bin/bash GIT_WORK_TREE=/var/www/myproject-deploy export GIT_WORK_TREE git checkout -f ``` > - `GIT_WORK_TREE` 是你希望部署代码的实际目录(可创建新目录) > - `git checkout -f` 强制覆盖当前工作树中的文件 3. 设置钩子文件为可执行: ```bash chmod +x /var/www/myproject/hooks/post-receive ``` 4. 创建部署目录并初始化: ```bash mkdir /var/www/myproject-deploy cd /var/www/myproject-deploy git init git remote add origin user@your-server-ip:/var/www/myproject git fetch git checkout main ``` --- ## 🛠️ 步骤四:本地推送代码到服务器 在本地执行以下命令,将代码推送到正式服务器: ```bash git push production main ``` > 这会触发服务器上的 `post-receive` 脚本,将代码部署到 `/var/www/myproject-deploy`。 --- ## ✅ 一键部署脚本(可选) 你可以创建一个 shell 脚本,简化操作: ### `deploy.sh` ```bash #!/bin/bash echo "Pushing to production..." git push production main echo "Deployment completed." ``` 然后运行: ```bash chmod +x deploy.sh ./deploy.sh ``` --- ## 🔐 安全建议 - 使用 SSH 密钥认证,避免密码输入。 - 不要将敏感信息(如数据库密码)写入版本控制。 - 使用 `.gitignore` 忽略不需要提交的文件(如 `env.php`, `config.json` 等)。 --- ## 🔄 可选:使用 CI/CD 自动化部署 如果你希望更高级的自动化(如构建、测试、部署),可以考虑: - GitHub Actions - GitLab CI - Jenkins - Travis CI 这些工具可以在代码提交后自动拉取、构建、部署。 --- ## ✅ 总结 | 步骤 | 内容 | |------|------| | 1 | 在服务器创建 bare repo | | 2 | 配置本地远程仓库 | | 3 | 设置 post-receive hook 自动部署 | | 4 | 本地执行 `git push production main` | --- 如果你有特定的服务器环境(如 Nginx、Node.js、PHP 等),我也可以帮你定制部署脚本。需要的话告诉我你的项目类型。
上一篇:
git add 命令添加所有改动内容
下一篇:
Git 工作区、暂存区和版本库
标题录入,一次不能超过6条
返回顶部
留言
留言
评论