文章内容

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)mastergit pull origin master保持稳定,仅合并已测试的代码。
    备份/测试服务器 (B)feature-backupgit pull origin feature-backup继续之前的实验性开发。
    ⚠️ 一个关键的提醒(关于 master 回滚)

    如果你在本地对 master 进行了回滚(例如 git reset --hard),当你尝试 git push origin master 时,GitHub 会因为版本冲突拒绝你的提交。

    处理方法:

    由于你是为了回滚生产环境,你需要使用强制推送

    git push origin master --force

    注意: 强制推送会覆盖 GitHub 上的 master 历史,请务必确认你已经执行了第一步(创建了 feature-backup 分支),否则回滚掉的代码就真的找不回来了。

    总结流程建议

    1. 本地: 建分支 -> 推送分支 -> 回滚 master -> 强制推送 master。

    2. 服务器 A: git pull (此时它会跟着 master 一起回退)。

    3. 服务器 B: git fetch -> git checkout feature-backup

    git 多分枝开发
    没有了
    分享到:

    发表评论

    评论列表