是否可以重做Mac上GitHub Desktop的Undo删除的提交?

艾伦·史密斯

Mac应用程序的“ GitHub Desktop ” Mac应用程序在主视图的提交区域中具有“撤消”按钮。

Mac版GitHub桌面截图

单击它似乎会从存储库中删除最新提交,而无需进行确认。尽管本地更改仍然可用,但撤消过去当前不在本地中的所有内容似乎可以从存储库历史记录中完全删除它。这是演示存储库的日志。几次提交后,然后按“撤消”,看起来像这样:

  • f6e4436(主)初始提交。
  • a3857ad添加了示例文件。
  • cf17c3b添加了关键内容。
  • 35f1c76(HEAD-> dev)意外删除关键行。

此时,关键线不再位于本地或最后一次提交中。它仍然可以通过“ cf17c3b”散列使用。

单击撤消一次会产生以下结果:

  • f6e4436(主)初始提交。
  • a3857ad添加了示例文件。
  • cf17c3b(HEAD-> dev)添加了关键内容。

两点之后:

  • f6e4436(主)初始提交。
  • a3857ad(HEAD-> dev)添加了示例文件。

最后,第三次按“撤消”按钮将仓库的状态恢复为:

  • f6e4436(HEAD-> dev,master)初始提交。

在最后两次单击“撤消”之后,不再可以访问“ cf17c3b”提交(即,我不小心删除的关键行似乎已被完全删除)。

我没有在应用程序中看到任何要“重做”由“撤消”完成的更改的内容。这是非常令人惊讶的,因为该按钮不需要确认它可能会永久删除代码。我的问题是:

  1. 是否可以从应用程序内部“重做”以恢复由“撤消”删除的提交?

  2. 如果无法通过该应用程序,则可以通过命令行吗?

戴维·德格

我不知道通过应用程序知道什么,但是使用git reflog它可以找到HEAD去往的历史,然后将当前分支与该提交合并以恢复它(以及所有先前的提交)。我的猜测是该应用程序用于git reset撤消提交,因此您的reflog可能如下所示:

0ba8580 HEAD@{0}: reset: moving to head~
1451518 HEAD@{1}: reset: moving to head~
79b5909 HEAD@{2}: reset: moving to head~
a28c206 HEAD@{3}: checkout: moving from 4de17de8c1a89f17db894150144e58f8b0b50f6c to master
4de17de HEAD@{4}: checkout: moving from master to head~4
a28c206 HEAD@{5}: checkout: moving from 5005e7d017b15cf6d725ca01ac586e566338fa86 to master

最近的操作在列表上排名第一。你想要做的是与线合并reset要撤消。因此,例如在这种情况下,您可以尝试git merge HEAD@{3}如果要在合并之前检查提交,请执行git show HEAD@{3}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

GitHub Desktop 删除最后两次提交

在GitHub上,是否可以根据提交的标题拒绝推送?

如果提交的格式不正确,是否可以拒绝在Github上的提交?

GitHub提交已删除

是否可以通过GitHub上的错误提交清理远程仓库的文件?

在Github上删除由<user>提交的<user>

如何在GitHub上删除提交?

如何在GitHub上删除推送的提交?

如何从Mac上完全删除Parallels Desktop?

删除gitlab上的提交

是否可以通过github网站从分叉仓库中删除特定提交

是否可以通过命令行删除Github上的远程存储库?

回到Github Desktop中的上一次提交

GitHub Desktop正在提交被忽略的文件

如何删除github中的提交

用户是否可以使用API通过github上的提交找到我的电子邮件/名称?

是否可以标记一个提交,就像两个人在github上所做的一样?

我删除推送的提交后,github上的问题仍然关闭

如何从Github上已关闭的请求中删除/替换提交

如何从对象或从 github 上的提交中删除大文件?

如何在Mac上的GitHub Desktop中重置Bitbucket密码?

是否可以编辑 Github 提交历史记录?

是否可以通过GitHub的Web界面还原提交

合并master后是否可以删除不相关的提交

是否可以从Git分支(本地和远程)删除特定的提交?

我可以直接在GitHub上还原提交吗?

回滚GitHub Desktop(或Windows的Github)中未提交的更改

在GitHub Actions中,是否可以访问已删除分支的名称?

GitHub 删除了我之前的提交