文章内容
2026/3/18 2:54:03,作 者: 黄兵
git 双分支服务器配置
在上篇文章中我们详细介绍了什么是多分支开发,如果我们需要再服务器上部署不同分支,应该如何操作?
这篇文章详细介绍了如何再服务器上部署不同分支版本的程序。
如果我们再服务器上执行 git branch 命令,只看到本地有 master 分支,没有其它分支如何处理?
这种情况是因为目前只在本地创建了分支,或者远程分支还没有被拉取到本地。在 Git 中,git branch 默认只列出本地已经存在的分支。
要解决这个问题并实现不同服务器部署不同分支,请按照以下步骤操作:
第一步:在本地创建并推送分支
如果你还没创建 feature-backup,你需要先在你的开发电脑(Local Machine)上完成备份并推送到 GitHub。
- 创建备份分支(在回滚 master 之前):
git checkout -b feature-backup
- 将备份分支推送到 GitHub:
git push origin feature-backup
此时,GitHub 上就会出现这个新分支。
第二步:在服务器上拉取新分支
现在切换到你的第二台服务器(准备运行备份代码的那台),执行以下操作:
- 获取远程更新(让服务器知道 GitHub 上多了个分支):
git fetch origin
- 查看所有分支(包括远程):
git branch -a
- 切换并追踪远程分支:
git checkout -b feature-backup origin/feature-backup
这条命令会在服务器本地创建一个同名分支,并与远程关联。
方案对比:如何管理这两台服务器的更新
在两台服务器跑不同的分支,建议采用以下逻辑:
| 服务器类型 | 目标分支 | 核心命令 (更新时) | 备注 |
| 生产服务器 (A) | master | git pull origin master | 保持稳定,仅合并已测试的代码。 |
| 备份/测试服务器 (B) | feature-backup | git pull origin feature-backup | 继续之前的实验性开发。 |
如果你在本地对 master 进行了回滚(例如 git reset --hard),当你尝试 git push origin master 时,GitHub 会因为版本冲突拒绝你的提交。
处理方法:
由于你是为了回滚生产环境,你需要使用强制推送:
git push origin master --force
注意: 强制推送会覆盖 GitHub 上的 master 历史,请务必确认你已经执行了第一步(创建了 feature-backup 分支),否则回滚掉的代码就真的找不回来了。
总结流程建议
本地: 建分支 -> 推送分支 -> 回滚 master -> 强制推送 master。
服务器 A:
git pull(此时它会跟着 master 一起回退)。服务器 B:
git fetch->git checkout feature-backup。
评论列表