git merge
或
git pull
合并更新至本地分支,此过程自动整合差异,若遇冲突需手动解决,确保代码一致性,完成后提交并推送,保持本地与服务器版本同步,便于团队协作开发。
权限验证
确保本地 Git 配置中已添加服务器 SSH 密钥,并具有代码仓库的读写权限,可通过命令检查连接状态:
ssh -T git@服务器域名
分支策略
明确开发分支(如 dev
)、生产分支(如 main
)的用途,建议遵循 Git Flow 或 GitHub Flow 等标准分支模型。
拉取最新代码
切换到目标分支并拉取远程仓库更新:
git checkout main git pull origin main
处理冲突预判
若 git pull
提示冲突,优先通过 git status
定位冲突文件,暂存修改后再合并:
git stash # 临时保存本地修改 git pull origin main git stash pop # 恢复修改并解决冲突
合并开发分支
将 dev
分支的改动合并到 main
分支:
git merge dev --no-ff # 禁用快进合并,保留合并记录
解决冲突的核心步骤
git diff
查看冲突细节<<<<<<<
的冲突区域git add 冲突文件名 git commit -m "解决分支合并冲突"
自动化测试
运行单元测试与集成测试(例如通过 CI/CD 流水线):
npm test # 或 pytest、phpunit 等
本地模拟生产环境
使用 Docker 或虚拟机验证代码在服务器环境的表现:
docker-compose up --build
强制审查(可选)
对关键分支启用保护规则(如 GitHub 的 Protected Branches),要求 Pull Request 审核。
原子化提交
推送合并后的代码并附加清晰描述:
git push origin main -u
钩子脚本自动化
通过 Git 的 post-receive
钩子触发部署脚本,示例:
# 在服务器 .git/hooks/post-receive 中添加 cd /var/www/project git --work-tree=/var/www/project --git-dir=/repo.git checkout -f systemctl restart nginx
回滚预案
保留版本标签以便快速回退:
git tag v1.2.3 git push origin --tags
rsync
或云快照)