git - 如何使用 Git 删除已推送到远程存储库的提交

标签 git github smartgit

我已将几个提交推送到远程存储库,发现它们产生了问题。

我怎样才能回到以前的版本?也就是说,删除两个最新的提交?

最佳答案

由于您已经将提交推送到远程存储库,最好的方法可能是还原这两个提交,这样您就不会给已经从远程存储库中提取的任何人造成任何问题。

示例使用以下提交历史:

e512d38 Adding taunts to management.
bd89039 Adding kill switch in case I'm fired.
da8af4d Adding performance optimizations to master loop.
db0c012 Fixing bug in the doohickey

如果您只想恢复提交而不修改历史记录,您可以执行以下操作:

git revert e512d38
git revert bd89039

或者,如果您不想让其他人看到您添加了 kill switch 然后将其删除,您可以使用以下命令回滚存储库(但是,这会给已经从中提取您的更改的其他人带来问题 Remote ):

git reset --hard da8af4d
git push origin -f localBranch:remoteBranch

其中 localBranch 是本地分支的名称,remoteBranch 是远程分支的名称。

关于git - 如何使用 Git 删除已推送到远程存储库的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9731215/

相关文章:

node.js - npm install 的问题(Angular)

git - 如何将Git提交移动到另一个分支并在原始分支中删除它们?

GitHub 客户端 : Pull Request Button is missing

python - Github api v3 通过 python oauth2 库访问 - 重定向问题

ubuntu - 如何让SmartGit/Hg在非英语系统中找到mercurial?

SmartGit-选择多个提交中的所有文件

xcode - 如果我的 git 工作副本脏了,我该如何停止 Xcode 存档构建?

java - .gitignore 文件在 git 推送期间不会忽略某些文件?

git - SmartGIt "Not all refs have been pushed"错误

git - git 如何在提交图中存储 "edges"?