git删除错误的commit

文章目录

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就是从跟踪清单中删除

相关推荐
是宇写的啊9 小时前
Git远程操作
git
our_times17 小时前
# Git 高频命令实战指南:从日常开发到进阶协作
git
PBitW18 小时前
git 中容易遗忘的点 (二) ⚡⚡⚡
前端·git·面试
PBitW18 小时前
git 中容易遗忘的点 (三) 🚀🚀🚀
前端·git·面试
郑州光合科技余经理21 小时前
家政预约小程序后端源码深度剖析:支付回调实战
java·开发语言·前端·git·小程序·架构·php
北极糊的狐1 天前
钉钉小程序 Git 版本管理完整流程
git·小程序·钉钉
Fzuim1 天前
当 AI 也成为提交者:ThinkFlow 的 Git 提交规范,是怎么定的
git·agent·thinkflow
CodexDave2 天前
数据库连接池耗尽:排查顺序与三层兜底
服务器·前端·数据库·git·云原生·容器·kubernetes
乐观的Terry2 天前
5、发布系统-Git 集成
大数据·git·elasticsearch
不怕犯错,就怕不做2 天前
GIT的简单打patch应用format-patch and git am
linux·git·全文检索