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


当前回答

如果您已经推送,请首先在HEAD($GIT_commit_HASH_HERE)找到您想要的提交,然后运行以下命令:

git reset --hard $GIT_COMMIT_HASH_HERE
git push origin HEAD --force

然后,在复制了回购的每个位置,运行:

git reset --hard origin/master

其他回答

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

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

git log

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

git reset --hard <your commit id>

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

删除上次提交

例如,您最后一次提交

git推送原点+aa61ab32^:主

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

步骤

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

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

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

git reset bb676878^ --hard

git push origin -f

上面的所有命令都会像提交之前一样恢复工作树和索引的状态,但不会恢复存储库的状态。如果您查看它,“已删除”提交实际上并没有被删除,它根本不是当前分支顶端的提交。

我认为没有办法用瓷命令删除提交。唯一的方法是从日志和reflog中删除它,然后执行git prune--expire-now。

git reset—软Id提交允许您删除提交,但不删除当前文件。然后使用git push-f源名称分支

使用git还原https://git-scm.com/docs/git-revert。它将还原所有代码,然后您可以进行下一次提交。然后head将指向上一次提交的代码。还原的提交不会删除,但不会影响您上次提交。