如何从分支历史记录中删除提交?我应该使用git reset-hard HEAD吗?


当前回答

git重置--硬HEAD~1你现在将处于前一个位置。拉动树枝。推送新代码。提交将从git中删除

其他回答

假设您尚未推送到远程存储库,则可以重新克隆存储库。这是我几次选择的方法。

资料来源:https://gist.github.com/sagarjethi/c07723b2f4fa74ad8bdf229166cf79d8

删除上次提交

例如,您最后一次提交

git推送原点+aa61ab32^:主

现在您要删除此提交,然后使用以下简单方法

步骤

首先将分支重置为当前提交的父级用力将其推至遥控器。

git reset HEAD^--硬git推送原点-f

对于特定的提交,您希望重置如下

git reset bb676878^ --hard

git push origin -f

小心:git reset-hard将删除您的工作目录更改。在运行此命令之前,请确保隐藏所有要保留的本地更改。

假设您正在执行该提交,则此命令将使其变得古怪。。。

git reset --hard HEAD~1

HEAD~1表示在HEAD之前提交。

或者,您可以查看gitlog的输出,找到要备份的提交的提交id,然后执行以下操作:

git reset --hard <sha1-commit-id>

如果你已经推了它,你需要用力推才能摆脱它。。。

git push origin HEAD --force

然而,如果其他人已经成功了,那么你最好开始一个新的分支。因为当他们拉动时,它会将其合并到他们的工作中,你会再次将其推高。

如果您已经推送了,那么最好使用git-restore创建一个“镜像”提交,以撤消更改。但是,这两个提交都将在日志中。


仅供参考——git reset——如果你想摆脱“正在进行的工作”,那么硬头非常好。它会将您重置为最近的提交,并清除工作树和索引中的所有更改。


最后,如果您需要找到您“删除”的提交,除非您已经垃圾收集了存储库,否则它通常会出现在gitreflog中。

这里我只发布了一条清晰的管道

步骤1:使用gitlog获取提交ID。

git log

步骤2:使用git reset返回到以前的版本:

git reset --hard <your commit id>

将代码备份到临时文件夹。以下命令将重置服务器。

git reset --hard HEAD
git clean -f
git pull

如果要保留更改并删除最近的提交

git reset --soft HEAD^
git pull