生产服务器回滚后,如何同步GitHub master分支并获取旧版本代码
获取GitHub仓库旧版本代码的方法
第一步:定位目标版本的提交哈希
- 本地仓库执行
git log --oneline,会列出所有提交的短哈希值和提交说明,找到昨日部署成功对应的那条提交记录,复制其哈希值(比如abc123)。 - 也可以直接访问GitHub仓库的「Commits」页面,找到目标提交后复制完整或短哈希值。
第二步:根据需求选择操作方式
1. 临时查看/使用旧版本(不修改当前分支)
执行以下命令切换到目标版本:
git checkout <目标提交哈希>
此时会进入「分离头指针」状态,可直接使用该版本的代码。若要回到master分支,执行:
git checkout master
2. 创建新分支保留旧版本(推荐)
基于目标提交创建新分支,避免影响原master分支:
git checkout -b <新分支名称> <目标提交哈希> # 示例:git checkout -b production-rollback abc123
之后可以用这个新分支部署到生产服务器,也可以随时在GitHub上推送这个分支。
3. 直接回滚master分支(谨慎操作)
如果需要让远程master分支直接回到旧版本(会覆盖远程历史,需提前和团队确认):
- 本地强制回滚到目标版本:
git reset --hard <目标提交哈希>
- 强制推送到远程GitHub仓库:
git push origin master --force
注意:强制推送后,团队其他成员需要重新拉取仓库,且若有人已基于原master提交代码,会产生冲突,务必提前沟通。
内容的提问来源于stack exchange,提问作者Arun
相关产品推荐
相关产品推荐

