讲师中心 微信公众号

工具推荐

视频效率加速
updream

一键生成高质量推广成片

立刻MV
立刻MV

低成本歌曲 MV、视频生成

Laper
Laper

剧本策划到成片协作

Seko
Seko

AI短剧一键生成成片

Git怎么撤销昨天的提交?按时间回退版本方法

酷强君_5779

酷强君_5779

发布时间:2026-11-10 06:33:39

|

505人浏览过

|

来源于php中文网

原创

Git不支持git reset --date "yesterday",需先用git log --since="1 day ago"等查出昨日提交哈希,再用git reset --hard 或git revert 操作;已推送则禁用reset,改用revert;误删可用reflog恢复。

git怎么撤销昨天的提交?按时间回退版本方法

git reset --hard 不能按“昨天”执行

Git 没有内置的 git reset --date "yesterday" 这类语法。所谓“撤销昨天的提交”,本质是找一个时间点附近的 commit,再用标准回退命令操作。直接输日期会报错:fatal: ambiguous argument 'yesterday': unknown revision or path not in the working tree。

真正可行的方式是:先查出昨天范围内有哪些提交,从中挑出目标 commit hash,再用 git reset --hard <hash></hash> 或 git revert <hash></hash> 处理。

  • 用 git log --before="2026-10-19" --after="2026-10-18" --oneline 查昨天的提交(注意替换为实际日期)
  • 如果记不清具体日期,可用 git log --since="1 day ago" --until="now" --oneline 看最近 24 小时内的提交
  • --since 和 --until 支持自然语言,如 "2 days ago"、"noon yesterday",但 Git 解析有偏差,建议优先用 ISO 格式 "2026-10-19"

本地未推送时,用 reset 回退到指定 commit

确认目标 commit 后,回退方式取决于你是否想保留改动:

  • 要丢弃所有改动(包括工作区),用 git reset --hard <commit-hash></commit-hash> —— 注意:这会清空暂存区和工作区,未提交的修改将丢失
  • 只想撤掉提交记录,但代码保留在暂存区(方便改完重提),用 git reset --soft <commit-hash></commit-hash>
  • 想把改动放回工作区(未暂存),用 git reset <commit-hash></commit-hash>(即默认的 mixed 模式)

例如,查到昨天最后一次正确提交是 a82b1e4,执行 git reset --hard a82b1e4 后,git log 就看不到之后的提交了。

Github Codebase Inspection
Github Codebase Inspection

使用 pygount 检查代码库:统计代码行数(LOC)、编程语言及占比。

下载

已推送到远程分支?别用 reset,改用 revert

如果那个“昨天的提交”已经 git push 上去了,尤其在 shared 分支(如 main、develop)上,reset --hard 再 push --force 会破坏他人本地历史。此时必须用 git revert。

  • 撤销单个提交:git revert <commit-hash></commit-hash>,会生成一条新提交,内容是原提交的反向变更
  • 撤销从某提交到 HEAD 的连续范围(含合并):git revert <oldest-hash>^..HEAD</oldest-hash>(注意 ^ 表示“不包含起始提交”)
  • 如果 revert 后出现冲突,Git 会暂停并提示你解决;解决后 git add . && git revert --continue

执行后记得 git push 推送 revert 提交——它是一次普通提交,不会触发强制推送警告。

reflog 是你最后的安全网

哪怕你已经 reset --hard 并且关掉了终端,只要没执行过 git gc,被删掉的提交通常还在 reflog 里。这是 Git 自动维护的操作日志,不随 reset 清除。

  • 运行 git reflog,你会看到类似 a82b1e4 HEAD@{0}: reset: moving to a82b1e4、f3a9c21 HEAD@{1}: commit: 修复登录 bug 的记录
  • 想找回 f3a9c21,直接 git reset --hard HEAD@{1} 即可恢复
  • reflog 默认只保留 90 天,且仅存在于本地仓库,不能用于恢复远程已丢失的提交

真正容易被忽略的是:reflog 不显示时间戳,只靠序号和动作描述判断;而 git log -g 可以带时间列,更利于定位“昨天”的那条记录。

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

7359

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2040

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

1214

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4777

2024.04.09

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4701

2024.04.09

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

40

2026.11.06

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

20

2026.11.06

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

20

2026.11.06

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

40

2026.11.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Postman Native Git工作流指南
Postman Native Git工作流指南

共0课时 | 0人学习

vscode手册
vscode手册

共0课时 | 0人学习

Git 教程
Git 教程

共21课时 | 8.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn