Django项目执行git reset --hard仍无法获取旧版本代码怎么解决
Git回滚旧版本代码失败解决步骤
- 第一步:确认reset操作是否生效
执行git log --oneline -n 5,查看输出第一条是否为目标提交eeb02c91 Email not registered error added。如果匹配说明reset已经生效,未获取到旧代码可排查以下两种场景:- 场景1:requirements.txt被加入.gitignore规则
git不会跟踪被忽略文件的变更,即使回滚版本也不会自动恢复该文件。可直接执行命令导出对应提交的requirements.txt内容:git show eeb02c91:requirements.txt > requirements.txt - 场景2:reset操作执行在了错误分支
执行git branch查看当前带*标记的活跃分支是否为需要回滚的目标分支,若分支错误先执行git checkout 目标分支名切换分支后,再重新执行reset命令即可。
- 场景1:requirements.txt被加入.gitignore规则
- 第二步:reset操作未生效的处理
如果git log输出第一条不是目标提交,说明提交哈希可能输入错误,执行git reflog查看本地所有操作历史记录,找到目标提交对应的正确哈希值后,重新执行git reset --hard 正确哈希值即可。
注意:如果回滚后需要推送至远端部署,因本地分支版本低于远端,直接推送会被拒绝,需执行
git push -f 远端名称 分支名强制推送,强制推送会覆盖远端对应分支的所有内容,操作前请确认无其他同事在该分支提交新代码。
内容的提问来源于stack exchange,提问作者Vidhya Sagar Potnuru
相关产品推荐
相关产品推荐

