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


当前回答

我已经推了。需要远程返回一些提交。尝试了许多变化,但只有Justin via git bush的这句话对我来说很好:

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

其他回答

在本地分支上重置

git reset --hard HEAD~<Number of commit> So git reset --hard HEAD~3

强制推至原点

git push -f origin

在我的情况下,我对这只小狗的魔法代码是这样的:

git reset --hard @{u}

测试一下,告诉我。我试过几种不同的方法,但只有这一种对我有帮助。

如果要修复最近的提交,可以通过以下操作撤消提交并取消其中的文件:

git reset HEAD~1

这将使存储库返回到暂存文件的gitadd命令之前的状态。您的更改将在您的工作目录中。HEAD~1指的是分支当前尖端以下的提交。

如果要取消提交N个提交,但将代码更改保留在工作目录中:

git reset HEAD~N

如果您想摆脱最新的提交,并且不想保留代码更改,可以进行“硬”重置。

git reset --hard HEAD~1

同样,如果您想放弃最后N次提交,并且不想保留代码更改:

git reset --hard HEAD~N

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

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

git log

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

git reset --hard <your commit id>

删除整个提交

git rebase -p --onto SHA^ SHA

显然,用您想要删除的引用替换“SHA”。该命令中的“^”是文字。

http://sethrobertson.github.io/GitFixUm/fixup.html#change_deep