如何在远程分支上使用git重置错误提交?

如何在远程分支上使用git重置错误提交?,git,Git,我正在学习git 我在一个分支上有以下提交 承诺3 承诺2 提交1 提交0 如何删除提交1,但将提交2和3保留在远程分支上?两种可能的不同解决方案: git还原提交1;git push-创建一个新的提交,它恢复提交1 git-rebase-i HEAD~3然后删除commit 1和git-push-f,但请注意,这需要“强制推送”权限,这意味着重写历史,这并不总是可取的(进行研究,这通常只有在处理尚未分发/发布/冻结的代码时才可行)。有关更多详细信息,请参阅手册页 只需使用git恢复。它将在顶部

我正在学习git

我在一个分支上有以下提交

承诺3

承诺2

提交1

提交0


如何删除提交1,但将提交2和3保留在远程分支上?

两种可能的不同解决方案:

  • git还原提交1;git push
    -创建一个新的提交,它恢复提交1

  • git-rebase-i HEAD~3
    然后删除commit 1和
    git-push-f
    ,但请注意,这需要“强制推送”权限,这意味着重写历史,这并不总是可取的(进行研究,这通常只有在处理尚未分发/发布/冻结的代码时才可行)。有关更多详细信息,请参阅手册页


  • 只需使用git恢复。它将在顶部添加一个新的commit(我想是commit4),它恢复了commit1的功能。Git永远不会删除历史记录,只会添加。您应该明确指出,1和2并不意味着要一起使用,它们都是问题的互斥解决方案。