Git撤销修改

Git撤销修改

如果因为各种原因,需要回滚至上个版本,可以使用特定的命名实现。

首先回退分为回退工作区、回退暂存区、回退版本库。回退的命令是层层递进的,如回退暂存区的命令实际是将工作区和暂存区都回退,回退版本库的命令实际是将三个区都回退。

要注意的是,git 只会对在 git 中已被版本控制的文件 进行操作,即,在相关目录下被忽略的文件、未跟踪 (从没被添加到暂存区或版本库中)的文件,在版本回退时都不会受到影响

bash 复制代码
git reset --soft --mixed --hard HEAD

--soft 会将版本库的内容回退,但工作区和暂存区的内容不变。

--mixed 是缺省操作,会将版本库和暂存区的内容回退,但工作区的内容不变。

--hard 会将三个区的内容全都同步到上一个版本。

HEAD 表示当前版本,^ 表示上一版本,需要回退到多少个版本前,就加几个 ^

1. 撤销工作区修改

bash 复制代码
git checkout -- [filename]	//将某个文件的内容回退到版本库最新的备份

2. 撤销工作区和暂存区修改

^ 表示一个版本,要回退到多少个版本前就输入多少个 ^

bash 复制代码
git reset --mixed HEAD^

3. 撤销版本库修改

注意如果使用的是远程仓库,撤销版本库修改要在执行 push 命令之前,否则版本回退后再提交再执行 push 会产生远程仓库和本地仓库的分支冲突。

bash 复制代码
git reset --hard HEAD^

如果执行 push 命令后,仍然要回退版本库,要注意不能执行回退后再 push ,因为本地仓库的提交版本是不能比远程仓库的提交版本低的。而是要使用:

bash 复制代码
git revert HEAD^

这个命令会将当前仓库的内容回退到上一个版本,并生成一个新的提交 ,这样就能解决本地版本低而不能 push 到远程仓库的问题。

相关推荐
小龙14 小时前
【Git 报错解决】本地无有效提交无法推送(`src refspec main does not match any`)
git·github·报错
小扶苏14 小时前
删除git全局账号信息并设置成新的账号密码命令
git
Greg_Zhong16 小时前
Git创建任务分支进行开发,最后合并主分支master【纯git命令执行过程】阐述
git
眯眼因为很困啦17 小时前
GitHub Fork 协作完整流程
前端·git·前端工程化
AlexDeng19 小时前
Git 中模糊搜索分支名称并创建本地跟踪分支
git
jxm_csdn1 天前
递归工程工厂:Claude Code + Git Worktrees + Tilix/Tmux 的“AI分身”编码团队
人工智能·git
码咔吧咔1 天前
Git 中 pull.rebase = true 的作用与设置方法详解
git
郑州光合科技余经理1 天前
开发实战:海外版同城o2o生活服务平台核心模块设计
开发语言·git·python·架构·uni-app·生活·智慧城市
我是海飞1 天前
Git 本地仓库推送到远程空仓库指南
大数据·git·elasticsearch
记得开心一点嘛1 天前
如何去使用git进行协同开发?
git