当前位置: 首页 > article >正文

git如何撤销最近一个或几个提交

方法一: git  reset 

git reset  HEAD~     

HEAD~:表示当前分支的最新提交(HEAD)的父提交,即上一个提交。~ 符号在这里表示“父提交”的意思,HEAD~1 和 HEAD~ 是等价的,都表示上一个提交,而 HEAD~2 则表示上两个提交,以此类推。

git reset  有三种模式:

--hard

  • 作用:彻底回退到某个版本,丢弃工作区和暂存区的所有更改。

  • 影响

    • 提交记录:HEAD 指针移动到指定的提交。
    • 暂存区:被重置为指定提交时的状态。
    • 工作区:被重置为指定提交时的状态,所有未提交的更改都会丢失。
  • 注意事项:这是最危险的模式,因为所有未提交的更改都会丢失。使用时应非常谨慎。

--mixed(默认)

  • 作用:重置提交记录和暂存区,但保留工作区的更改。

  • 影响

    • 提交记录:HEAD 指针移动到指定的提交。
    • 暂存区:被重置为指定提交时的状态,所有在上一个提交之后被添加到暂存区的改动都会被撤销(即从暂存区移除)。
    • 工作区:保持不变,仍然保留最后一次修改的状态。
  • 注意事项:这是默认模式,适用于想要撤销提交到暂存区的改动,但保留在工作目录中的改动的情况。

--soft

  • 作用:仅重置提交记录,保留暂存区和工作区的更改。

  • 影响

    • 提交记录:HEAD 指针移动到指定的提交。
    • 暂存区:保持不变,仍然包含上一个提交之后的所有改动。
    • 工作区:保持不变,仍然包含上一次修改后的文件。
  • 注意事项:这个模式适用于想要重新组织提交或修改提交信息的情况,因为所有改动都保留在暂存区和工作区中。

 

方法二: 创建新分支

直接舍弃本地该分支,重新基于某个提交点拉个新分支。

注意事项:

1. 以上两种方法都是只针对本地仓库,如果你提交代码的时候习惯性 commit+push , 代码已经到了远程仓库,那么你需要确认远程分支你reset 到的这个点之后有没有其他人提交,那么可以直接

git push origin  分支  --force 

特别提醒:--force是一种危险操作,需要确认reset点后只有你要舍弃的那个提交点,如果有其他人的提交点,push  --force 后,其他人代码会丢失。 

2. 如果不能 push --force (有其他人提交的代码), 不建议用reset ,只能人肉恢复,重新commit  push , 因为这种情况不能使用 push  --force ,使用reset 没意义, 因为reset 后push会冲突,也需要人肉解决冲突。

3. 可以reset 情况下,reset 后需要立即 push --force  ,并通知相关人员更新代码,否则后续解决冲突很麻烦。


http://www.kler.cn/a/441525.html

相关文章:

  • LabVIEW 太阳能光伏发电系统智能监控
  • 进程、线程和协程的区别
  • 接上篇基于Alertmanager 配置钉钉告警
  • 新年好(Dijkstra+dfs/全排列)
  • 客户案例:电商平台对帐-账单管理(亚马逊amazon)
  • 数据结构与算法之递归: LeetCode 131. 分割回文串 (Ts 版)
  • Redisson常用方法
  • 如何解决手机,电脑等工作室同ip关联问题
  • Springboot3.x配置类(Configuration)和单元测试
  • MySQL--》解析事务从隔离级别到死锁处理
  • Redis在库存里的应用
  • Python中工具脚本在本地共享给不同项目
  • 【C++】小乐乐求和问题的高效求解与算法对比分析
  • 深入探讨HTML页面中CSS的加载顺序
  • 大数据-179 Elasticsearch - 原理剖析 倒排索引与读写流程
  • 远程控制电脑技术让我们的生活更加简化
  • 期末复习-计算机网络应用题
  • ElementUI中el-dropdown-item点击事件无效
  • 《Vue进阶教程》第十四课:改进桶结构
  • 基于微信小程序的小区疫情防控ssm+论文源码调试讲解
  • 【RK3588 Linux 5.x 内核编程】-内核中断与SoftIRQ
  • 常见排序算法总结 (五) - 堆排序与堆操作
  • 谷歌推出 AI 编码助手 “Jules”,自动修复软件漏洞加速开发
  • linux中的权限简单总结
  • 蓝桥杯刷题——day3
  • ElasticSearch的自动补全功能(拼音分词器、自定义分词器、DSL实现自动补全查询、RestAPI实现自动补全查询)