如何配置并使用无本地副本的Git工作流?
无需本地副本的Git工作流配置方案
1. 测试服务器端配置(直接操作文件的环境)
- 登录测试服务器,创建项目目录并初始化Git仓库:
mkdir /path/to/test-project && cd /path/to/test-project git init # 添加.gitignore排除临时文件、日志等无需追踪的内容 echo -e "temp/\nlogs/" >> .gitignore git add .gitignore && git commit -m "Initialize repo with gitignore" - 若需要多人协作推送到测试服务器更新内容,配置允许远程推送自动更新工作目录:
git config receive.denyCurrentBranch updateInstead
2. 生产服务器端配置(接收推送并自动部署)
- 登录生产服务器,创建裸仓库(仅用于版本控制,无工作目录):
mkdir /path/to/prod-project.git && cd /path/to/prod-project.git git init --bare - 添加
post-receive钩子,实现推送后自动将代码部署到生产目录:# 创建钩子文件 cat > hooks/post-receive << 'EOF' #!/bin/bash # 指定生产部署目录 DEPLOY_DIR="/path/to/prod-deploy-folder" # 强制检出最新代码到部署目录 GIT_WORK_TREE=$DEPLOY_DIR git checkout -f main # 可选:添加部署后操作(如重启服务、清理缓存) # systemctl restart nginx EOF # 赋予钩子执行权限 chmod +x hooks/post-receive
3. 关联测试与生产服务器仓库
回到测试服务器,将生产服务器的裸仓库添加为远程仓库:
git remote add production user@prod-server-ip:/path/to/prod-project.git
4. 日常工作流
- 在测试服务器上直接编辑、修改文件(用vim、nano或服务器端编辑器)
- 提交变更到本地测试仓库:
git add . git commit -m "描述变更内容,比如:更新首页轮播图" - 推送到生产服务器完成部署:
git push production main
内容的提问来源于stack exchange,提问作者Mister Woyng
相关产品推荐
相关产品推荐

