如何使用其他用户凭据撤消对 GitHub 的意外推送

Posted

技术标签:

【中文标题】如何使用其他用户凭据撤消对 GitHub 的意外推送【英文标题】:How can I undo the unexpected push to GitHub with another user credentials 【发布时间】:2019-03-10 16:42:25 【问题描述】:

我同时使用我的 github 存储库和客户端 git 存储库。今天,我对我的 git 代码进行了修改,并意外地使用客户端凭据提交。提交后,我意识到我使用客户端用户名和电子邮件提交了代码,然后我设置 git config --global user.name "myname"git config --global user.email "ex@gmail.com" 将代码推送到我的仓库。代码推送成功。但我的问题是,我可以看到提交是由客户端凭据进行的。并且他的名字也被添加到了贡献者列表中。你可以在下面看到 我怎样才能将他从我的贡献者中删除,我想完全撤消推送。提前致谢。

【问题讨论】:

***.com/q/3042437/1030675 【参考方案1】:

如果这是最后一次提交,您可以编辑消息并使用 git commit --amend --reset-author 重置作者以将其设置为您当前的配置。

然后,您必须 git push --force 推送以删除错误作者的提交。

如果这不是最后一次提交,您可以使用git rebase --interactive 并重置您想要的提交。

【讨论】:

不幸的是,我做了git revert e4dc6fd 。我现在该怎么办? 如果这是最后一次提交,您可以使用git reset HEAD^ 取消最后一次提交。或者你可以做git rebase --interactive e4dc6fd^(我假设e4dc6fd是你要更改作者的提交),然后标记提交e4dc6fd进行编辑,然后关闭编辑器运行rebase,当它停止时,做git commit --amend --reset-author 要检查你以前的 git 历史是什么样子的,你可以这样做git log --all --decorate --graph --pretty=oneline --topo-order 谢谢@Asenar

以上是关于如何使用其他用户凭据撤消对 GitHub 的意外推送的主要内容,如果未能解决你的问题,请参考以下文章

如何撤消 Git 中最近的本地提交?

如何撤消重置(Git / TortoiseGit)?

如何撤消 git flow 功能完成?

将 git credentialmanager 与 github 令牌一起用于 gists

我直接推送到开发分支而没有拉请求如何撤消它?

如何撤消放弃 GitHub Desktop 中的更改?