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

git删除错误的commit

文章目录

  • 1、git删除错误的commit
  • 2、.gitignore配置文件不生效的问题

1、git删除错误的commit

git的流程如图:
在这里插入图片描述

当某次失误造成commit的版本有问题,需要回退到正常的版本修改后重新add。

首先通过git log查看commit提交记录,可以看到HEAD->mater是本地最新的commit,而origin/master, origin/HEAD是远程仓库上的最新记录,而一个正常的(指commit后立马push)的log长这样commit cba5300cb0c425c6db6f6bf60412d914e4225194 (HEAD -> master, origin/master, origin/HEAD),本地提交记录和远程仓库的记录是同步的。

在这里插入图片描述

现在我们需要将本地HEAD回退到正常版本,比如我这里回退到origin->HEAD,通过命令实现:git reset --soft c92524befc8b7913ed4b6f77fcbaf00fe1ec749e,然后git log查看日志可以看到回退成功
在这里插入图片描述

现在我们可以修改后再次git add后通过git status查看文件变动情况,检验是否符合期望。再使用git commit进行提交,最后git push推送到远程仓库

注:git reset 有三种模式:–soft、–hard和不加参数。

  • soft是保留工作区的内容和add提交,只是切换指针
  • hard是什么都不保留(文件夹所有内容退回为上次commit状态,文件消失;可以通过切换到最新的commit恢复,前提是知道id)
  • 不加参数是保留工作区的内容但是不保留add提交

2、.gitignore配置文件不生效的问题

gitignore文件只能作用于Untracked Files的文件,也就是一开始就没有add或者commit过的文件,如果已经进入版本控制中,修改.gitignore就不起作用。

此时可以通过git rm -r --cached .将所有文件都排除到跟踪外,即所有文件都未跟踪状态,此时再修改.gitignore就能跟新。也可以指定排除某些文件,具体可以看https://www.runoob.com/git/git-rm.html,其中--cache就是从跟踪清单中删除

http://www.lryc.cn/news/460255.html

相关文章:

  • 代码随想录算法训练营Day08 | 344.反转字符串、541. 反转字符串II、卡码网:54.替换数字
  • mysql锁之乐观锁、悲观锁、表锁、行锁、共享锁、排他锁
  • 【软件干货】Android应用进程如何保活?
  • neo4j部署保姆级教程
  • 【STM32CubeMX开发】-2.2-TIM_输出一个PWM信号
  • Ngx+Lua+Redis 快速存储POST数据
  • go-delve的使用
  • Python网络爬虫技术详解
  • Golang | Leetcode Golang题解之第474题一和零
  • 算法刷题技巧
  • BMS、EMS PCS 简介
  • spug3发布项目
  • 鸿蒙HarmonyOS开发:应用权限的基本概念及如何申请应用权限详细介绍
  • mac 桌面版docker no space left on device
  • 基于CIM的街镇基层治理统一指挥平台建设方案
  • PostgreSQL学习笔记三:数据类型和运算符
  • ROS理论与实践学习笔记——6 ROS机器人导航(仿真)
  • uniapp开发微信小程序,button的open-type=“share“ 分享给个人跳转到首页问题
  • 【jQuery】 jQuery基础及选择器介绍(基本选择器 层次选择器 属性选择器 过滤选择器)
  • 网站在对抗机器人攻击的斗争中失败了
  • Centos7 搭建logstash
  • 面试题:Redis(五)
  • LeetCode18.四数之和
  • jmeter出参保存到文件,保存失败解决
  • 黑龙江网络安全等级保护办理机制
  • 小红的行列式构造
  • pyflink过滤kafka数据
  • Webpack 完整指南
  • 如何在 Ubuntu20.04 安装FTP Server vsftpd
  • 基于FPGA的DDS信号发生器(图文并茂+深度原理解析)