git - 删除最后一次提交并推送

标签 git bitbucket gitkraken

同时学习 Git 和 GitKraken。我在一个文件 - aa.cpp 中做了一些小改动,在 GitKraken 的帮助下提交并推送到远程存储库。突然我发现我已经推送了所有我不喜欢的项目目录中的文件。

现在我需要从存储库中删除不需要的文件。我更喜欢从远程存储库中删除最后一次推送,然后尝试再次提交和推送。如何使用 GIT 命令删除最后一次提交。如何用 GitKraken 做同样的事情?

最佳答案

如果您已经推送了这个提交,那么有可能其他人已经 pull 了该分支。在这种情况下,重写你的分支的历史是不可取的,你应该恢复这个提交:

git revert <SHA-1>
git push origin branch

在这里<SHA-1>是您要删除的提交的提交哈希。要查找此哈希值,只需键入 git log在你的分支上检查第一个条目。

使用 git revert实际上添加一个新提交,它是您要删除的提交的镜像。这是撤消公共(public)分支上的提交的首选方法,因为它只是向分支添加新信息。

如果您确定您是唯一使用此分支的人,那么您还有另一种选择:

git reset --hard HEAD~1

其次是

git push --force origin branch

但只有在没有其他人共享此分支时才应使用此选项。

关于git - 删除最后一次提交并推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40693443/

相关文章:

java - 测试连接时出现 Bitbucket 错误 : “javax.net.ssl.SSLHandshakeException: General SSLEngine problem”

github - 我可以从 bitbucket 中的 url 获取 ssh 公钥吗?

staging - 升级后 GitKraken 分期太慢

git - 我可以推送 Remote 以便在克隆 repo 协议(protocol)时将它们包括在内吗?

git - 如何在不丢失已完成工作的情况下返回到较早的修订版?

mercurial - 将本地 Mercurial 存储库移至 Bitbucket

GitKraken 更改不显示——与 repo 断开连接

Xcode 源代码控制未与 git status(以及 repo)同步

git - 为什么GitHub建议 "prefix your version names with the letter v?"

Gitkraken pull 失败 - rmdir 错误