github - GitHub 回溯到上一次推送
问题描述
我意识到这不是一个直接的编码问题,但 GitHub 被广泛使用,我还没有看到如何做到这一点,所以我想我会问,因为我试图弄清楚。
使用 GitHub 如何将开发分支回溯到之前的推送点?
例如,假设我有一个 dev 分支并且我推送了错误的代码,如果需要,我如何回溯到该分支中的前一个点?
我更愿意从命令行查看如何执行此操作,但在 Web UI 中也可以。
解决方案
假设您的带有错误提交的分支已经发布到 GitHub,并且其他用户可能已经推送了它,那么您通常不会真正回滚该分支。相反,您将使用git revert
功能上撤消错误提交:
git revert 1a7h3jxk # where 1a7h3jxk is the SHA-1 hash of the bad commit
git revert
实际上添加了一个新的提交,它在功能上撤消了您指定为参数的提交。它还允许指定提交范围的语法。
如果您真的想正式“回溯”您的分支,您可以进行硬重置以删除错误的提交。例如,要实际删除单个错误提交,您可以执行以下操作:
git reset --hard HEAD~1
git push --force origin your_branch
但请注意,进行硬重置意味着您正在重写分支的历史记录。这意味着您必须强制推送(读取:覆盖)远程分支的版本。如上所述,如果除您之外还有其他人共享此分支,则不应使用此选项。
推荐阅读
- html - 如何让不同的图像适合同一个“盒子”?
- azure-databricks - 在特定单元格后停止执行 Databricks 笔记本
- ruby-on-rails - Rails 后端和 Vue 前端在同一个端口上
- sql - 未找到 Kotlin Gradle 驱动程序依赖项
- excel - 在每张纸上应用代码,除了少数
- javascript - 在 React 中销毁 DOM 元素时如何调用方法
- java - jOOQ - DefaultRecordMapper - 列表
- c# - 无法设置列表的值
- azure - Opendistro Elasticsearch Azure 存储库插件
- parallel-processing - 与输入分离的 GNU 并行环境变量