git取消提交的内容,恢复到暂存区
场景
我们在用git 的时候会经常遇到一种场景:我的某一次提交中包含了某一些不想提交的内容,但是本地已经commit了,但是还没有推到远程,有什么方法能够取消最后一次提交呢。
解决方法
使用git reset --soft head~1
可以完成这件事情,这个命令可以让最后一次commit取消,并且让git的head指针指向上一个提交的节点(父节点),将最新的提交退回到暂存库中。
git reset head~1
命令在 Git 版本控制系统中用于撤销最近的一次提交(commit),但它不会改变工作目录(working directory)或暂存区(staging area)的状态。这里的 head~1 指的是当前分支的最新提交的前一个提交,也就是“HEAD”指向的父提交。
具体的
# 撤销最后一次的提交,但是保留更改在暂存区
git reset --soft head~1# 撤销最后一次的提交,并且丢弃更改
git reset --hard head~1# 保留更改,并创建一个新的提交
git reset head~1
git commit -m "New commit with the same changes as the previous one"