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


当前回答

// display git commit log    
$ git log --pretty=oneline --abbrev-commit

// show last two commit and open in your default editor
// then delete second commit line and save it
$ git rebase -i HEAD~2

参考:如何在git、本地和远程中删除提交

其他回答

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

删除上次提交

例如,您最后一次提交

git推送原点+aa61ab32^:主

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

步骤

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

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

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

git reset bb676878^ --hard

git push origin -f

#[快速回答]

您有许多选择,例如:

备选方案1:git rebase-i<YourCommitId>~1将YourCommitId更改为要还原回的提交次数。备选方案2:git reset--硬YourCommitIdgit push<origin><branch>--force将YourCommitId更改为要还原回的提交次数。我不建议使用此选项,因为您可能会丢失正在进行的工作。备选方案3:git reset—软HEAD~1你可以保留你的工作,只撤销承诺。

正如您在上图中看到的,我想删除revert“test change 2”提交(SHA1 ID:015b5220c50e3dfbb1063f23789d92ae1d3481a2(您可以使用gitbash中的gitk命令获取SHA1 ID))。

为此,我可以使用(以下所有命令仅适用于本地。删除后需要推送):

git reset--hard 515b5220c50e3dfbb1063f23789d92ae1d3481a2//将您备份到该提交(测试更改4提交的SHA1 ID为515b5220C50e3dfbb 1063f23799d92ae 1d3481A2)gitreset-hardHEAD~1//它在一次提交之前备份您。git reset--hard HEAD ^//从git中删除最后一次提交

删除后:

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

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

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

git reset --soft HEAD^
git pull

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

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

git log

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

git reset --hard <your commit id>