git 如何删除合并提交?

jw5wzhpr  于 2023-09-29  发布在  Git
关注(0)|答案(2)|浏览(127)

我做了一些混乱在我的回购,我不明白在所有。
出现了一个奇怪的提交:
commit 70 cc 4 bd 585019286 ef 64 ef 591 f1 b6 ab 310484 eb 3(HEAD,origin/master,origin/HEAD,master)合并:960 b 06 a 709 f964作者:DuchSuvaa email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)日期:电话:+86-020 - 8888888传真:+86-020 - 88888888

Merge branch 'master' of https://github.com/DuchSuvaa/monitor-kolejek

我真的不明白这是怎么发生的。有人告诉我git reset --hard HEAD~1可以完成这项工作,但当我这样做时,我被 checkout 到第三个(!)从最后提交,并没有从GitHub中删除任何内容。
如何从Github上的repo中删除有问题的合并提交?

6l7fqoea

6l7fqoea1#

  1. git log --oneline
    1.在合并一之前复制提交哈希。
  2. git reset --hard <copied-commit-hash>
  3. git push --force(小心,它会重写远程历史记录)
lb3vh1jj

lb3vh1jj2#

代码没有变化,因为您正在本地分支上工作。
将军,我分两个案子
1.如果您没有将代码推送到远程存储库
因为当我们使用git merge时,它通常会在合并到的分支上创建一个新的提交,所以我们可以使用git reset来撤销git merge。有两种方法
如果您刚刚提交,并立即执行该命令

git reset --hard HEAD~1

或者,如果你想撤销过去的git merge命令,你必须在git merge之前确定commit hash并执行

git reset --hard <commit-hash-before-merge>

2您将代码推送到远程存储库
对于规则,我们从不更改共享分支的git历史记录(分支被推送)。所以,在这种情况下,我们可以使用git revert来创建一个新的commit,帮助我回到合并之前的commit。
首先,您必须确定合并提交的提交哈希并运行

git revert <commit hash merge> -m 1

相关问题