24. git revert

基本概述

git revert 的作用是:撤销某次的提交。与 git reset 不同的是,git revert 不会修改提交历史,而是创建一个新的提交来反转之前的提交。

基本用法

1.基本语法

git revert <commit-hash>
  • 该命令会生成一个新的提交,内容是将指定提交的更改反向应用

2.跳过编辑信息

git revert --no-edit <commit-hash>
  • 默认会打开编辑器让你编辑提交信息,可用 --no-edit 跳过

高级用法

1.撤销连续的多个提交

git revert <older-commit-hash>..<newer-commit-hash>
# 示例:撤销 commit1 到 commit3(假设 commit1 是更早的提交)
git revert commit1..commit3
  • 按提交顺序的反向依次撤销,例如先撤销较新的提交,再撤销较旧的

2.撤销非连续的多个提交

  • 多次执行 git revert ,依次指定要撤销的提交哈希

3.处理冲突
如果 git revert 导致冲突(无法自动合并)

  • 手动解决冲突文件
  • 使用 git add 标记冲突已解决
  • 继续完成撤销操作:git revert --continue
  • 若想放弃撤销使用:git revert --abort

4.手动提交

git revert -n/--no-commit <commit-hash>
  • 撤销更改但不自动提交,允许你手动提交
### 如何在Git中使用`git revert`命令 #### 使用场景 当项目历史中的某个提交引入了错误或不期望的变化时,可以利用 `git revert` 命令来创建一个新的提交,该提交会撤销指定旧提交所带来的更改。这不会修改现有的历史记录,而是通过添加新的提交来解决问题[^1]。 #### 执行Revert操作 要回滚特定的提交,需先找到想要撤消的那个提交ID(SHA)。可以通过运行 `git log` 来查看提交日志并获取所需的提交哈希值。一旦有了这个信息,则可执行如下命令: ```bash git revert <commit-id> ``` 此命令将会打开默认编辑器让用户确认即将被逆转的操作摘要;如果一切正常的话只需保存退出即可完成整个过程。对于不想手动编辑的情况也可以加上 `-n` 参数以跳过自动开启编辑器环节。 另外值得注意的是,在某些情况下可能会遇到冲突——即当前工作目录下的文件状态与尝试恢复的状态之间存在差异无法直接应用补丁。这时就需要按照提示解决这些冲突后再继续reverting流程[^3]。 #### 解决Revert过程中产生的冲突 如果遇到了合并冲突,Git会在受影响的文件中标记出不同版本之间的区别部分,并暂停revert进程等待处理这些问题。此时应该仔细检查每一个发生分歧的地方做出适当调整直至消除所有矛盾之处。之后再次标记已解析(`git add`)相关文件最后完成此次反转动作: ```bash # 编辑有冲突的文件... git add . git revert --continue ``` 如果有任何时刻觉得事情变得复杂难以应对可以选择放弃正在进行中的revert活动而回到之前的状态: ```bash git revert --abort ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值