我可以直接在GitHub上恢复提交吗?

pho*_*cks 30 git github

看起来您可以使用Web界面直接在GitHub上执行其他所有操作,例如编辑和创建和删除文件,但我无法找到恢复提交的方法,就像您可以在GitHub本地应用程序中一样(Windows,和Mac)就像你可以在git命令行上做的那样.

我只是想知道我错过了什么.恢复按钮是隐藏的吗?

我尝试在线搜索并遇到一些似乎暗示这是为了防止与很多人一起工作时的同步错误.它是否正确?

Von*_*onC 21

不,GitHub网络界面上没有直接提供该功能(与GitHub for Mac/Windows最近添加"Revert"按钮相反)

实际上,自2014年6月24日起适用于拉动请求:

介绍还原按钮

您可以通过单击"还原"轻松还原GitHub上的拉取请求:

https://camo.githubusercontent.com/0d3350caf2bb1cba53123ffeafc00ca702b1b164/68747470733a2f2f6769746875622d696d616765732e73332e616d617a6f6e6177732e636f6d2f68656c702f70756c6c5f72657175657374732f7265766572742d70756c6c2d726571756573742d6c696e6b2e706e67

系统将提示您使用恢复的更改创建新的拉取请求:

https://camo.githubusercontent.com/973efae3cc2764fc1353885a6a45b9a518d9b78b/68747470733a2f2f6769746875622d696d616765732e73332e616d617a6f6e6177732e636f6d2f68656c702f70756c6c5f72657175657374732f7265766572742d70756c6c2d726571756573742d6e65772d70722e706e67


git revert通过网络进行管理有点复杂,因为它可以接受一系列提交.
但它不应该是协作方面的问题:revert添加新提交,它不会更改现有提交的历史记录.

  • 对不起,我不知道大多数这些词是什么意思.转移到GitHub可能是一个坏主意,我只是想公开发布我的代码并跟踪版本,因为我在处理它,但这感觉就像试图使用榴弹炮拍苍蝇.我一直在谷歌搜索大约一个小时,现在试图解决这个"问题",我不明白为什么这很难. (4认同)
  • 哎哟! 我将学习一个完整的教程,其中包括深入到命令行,只是为了摆脱对文本文件的简单更改?(那个IBM页面似乎是一个完全不相关的主题,我可以告诉它?某种专有的备份系统文档?)我很感激努力提供帮助,但我不认为Github可能是出于我的想法这是为了,它似乎太适得其反了.我只是想开源我的代码并在我工作时保存后续版本.但不需要花费工程学位来完成简单的任务,比如恢复错误. (4认同)
  • GitHub需要添加这个功能。为什么还没有呢?? (4认同)
  • 哎呀,这是一场噩梦。在发现错误之前,我保存了一些损坏的版本,我需要将其丢弃,因为它们是垃圾,所以我根本不希望它们引起麻烦。显然,我坚持他们。伟大的系统。 (2认同)
  • 这整个事情太复杂了。我觉得我需要 TextEdit 并且只有 Emacs。我不想学习全新的术语和抽象概念,我只想在一个流行的、可访问的平台上分享我的代码。现在要保释了,该网站正在讨论这应该进入聊天,这不是我的意图。我感谢您提供帮助的尝试。 (2认同)

voh*_*hul 18

如果你只想使用 github web。不过有一个繁琐的方法。

步骤1。转到提交历史记录,找到要恢复到的提交哈希;并单击“浏览历史上此时的存储库”

第2步。从此提交哈希创建一个新分支(例如“temp”)

步骤3。删除有问题的分支(比如“main”)

步骤4。转到“temp”分支并从中创建“main”分支。你就完成了。

当然,这不是一个好方法,它可能只适用于最近创建的提交。

  • “恢复提交”与“恢复提交”不同 您的答案是“恢复提交”的好方法 (4认同)
  • 不完全的。恢复到“n-1”提交(在 git 中这实际上称为“重置为”)意味着删除“n”提交,就好像它从未发生过一样。恢复“n”提交意味着创建一个新的“n+1”提交,它会进行与“n”提交所做的所有相反的更改。 (3认同)

Moh*_*MVP 9

您不能revert back to that commit在 GitHub 网站上,没有选项可以执行此操作,相反,您应该使用command-line或 ,GitHub Desktop如下所示

在此输入图像描述

之后REVERT,不要忘记PUSH代码。有关更多详细信息,请查看链接如何在 GitHub 网站上恢复已删除的文件?

  • 截图来自Github桌面 (2认同)

小智 6

这对我有用GITHUB)。

 1) git reset --hard HEAD^   
 2) git push origin -f
Run Code Online (Sandbox Code Playgroud)

注意:- 这些行一一还原提交。

  • 这绝对不应该被标记为答案。“恢复”意味着 git 中特定的东西,这个答案并没有做到这一点。事实上,OP 使用 GitHub,这意味着它是一个共享存储库。使用此答案中的命令会产生严重的副作用。OP 要求在 UI 中提供一个按钮,而不是 git 命令。 (11认同)
  • 如果您要发布到其他人将使用的远程存储库,那么在使用它之前您应该三思而后行。这不是恢复,而是覆盖,非常危险。绝对很少有正确的答案(也许仅适用于个人项目)。 (3认同)
  • 这实际上不是恢复提交 - 这是完全丢弃它(重写历史记录)。 (2认同)