是否有任何方法可以撤消';git签出主机-f`?

是否有任何方法可以撤消';git签出主机-f`?,git,Git,当前是否仍然可以撤消执行git checkout master-f的本地更改 作为一个傻瓜,我在错误的分支中进行了大量本地更改,愚蠢地误读了一篇文章并执行了上述命令,因此我所有的本地更改都恢复到了3个版本:((悲伤的时代) 欢迎大家笑着指指点点,但如果有任何建议也将不胜感激。是的。请尝试: git reflog 要查看更改列表,请查找所需的更改并执行以下操作: git checkout <changeid> git签出 发生的情况是,您将您的分支更改为指向其他地方,而这些提交不

当前是否仍然可以撤消执行git checkout master-f的本地更改

作为一个傻瓜,我在错误的分支中进行了大量本地更改,愚蠢地误读了一篇文章并执行了上述命令,因此我所有的本地更改都恢复到了3个版本:((悲伤的时代)

欢迎大家笑着指指点点,但如果有任何建议也将不胜感激。

是的。请尝试:

git reflog
要查看更改列表,请查找所需的更改并执行以下操作:

git checkout <changeid>
git签出
发生的情况是,您将您的分支更改为指向其他地方,而这些提交不再有任何指向它们的分支。但是,更改本身并没有消失,您只是看不到它们。在git删除它们之前,它们将在reflog中挂起长达30天。

是。请尝试:

git reflog
要查看更改列表,请查找所需的更改并执行以下操作:

git checkout <changeid>
git签出

发生的情况是,您将您的分支更改为指向其他地方,这些提交不再有任何指向它们的分支。但是,这些更改本身并没有消失,您只是看不到它们。在git删除它们之前,它们将在reflog中挂起长达30天。

这取决于您是否提交了这些本地更改更改,或者有一个脏的工作树,树中有一堆未提交的更改。在后一种情况下,您可以做的事情不多,因为您丢弃了更改而没有保存它们。但是在前一种情况下,您可以从reflog中恢复更改。查看
git reflog show HEAD
的输出,看看这些内容是否与您想要的ocmmit类似返回。然后,您可以通过
签出
或各种类型的
重置
将其返回。这取决于您是否提交了这些本地更改,或者是否有一个包含大量未提交更改的脏工作树。在后一种情况下,您可以做的事情不多,因为您在没有保存更改的情况下丢弃了更改。但是在前者,您可以从reflog中恢复它。查看
git reflog show HEAD
的输出,看看其中是否有任何一个看起来像您想要返回的ocmmit。然后您可以通过
签出
或各种类型的
重置将其恢复

您有多种选择来执行此操作。
请阅读此答案,了解您拥有的每个选项的详细信息:

  • git签出
  • git reflog
  • git重置
  • git还原
还有更多


最好的答案是使用
reflog
来“回滚”您所做的更改,但请再次阅读附件中的所有内容

git reflog
这将使你回到你想要的承诺


如何恢复更改? 或者:你还能做什么? 重要通知
git永远不会丢弃数据,除非执行gc。所以,即使您没有看到这个提交,它仍然在您的本地存储库中,您也必须找到它

您可以通过执行git fsck来找到它,它将“查找”此时无法访问的所有提交

如果您已经提交了更改(即使您只是将文件添加到stagings中,但没有提交文件,也是如此),您可以还原内容

每次向临时区域添加内容时,git都会开始跟踪它,并将其存储在
.git/objects
文件夹中

由于您添加了文件并提交了它们,它们已经存储在那里,一旦您执行了
git checkout master-f
文件仍在那里,但与您的repo“断开”连接

在git“language”中,它被命名为悬挂对象

您可以查看这些对象,只要不强制执行将删除它们的git gc

# scan your repo for dangeling file
git fsck --full
然后要查看内容,请使用:

git cat-file -p <sha-1>
git cat文件-p
是的

您有多种选择来执行此操作。
请阅读此答案,了解您拥有的每个选项的详细信息:

  • git签出
  • git reflog
  • git重置
  • git还原
还有更多


最好的答案是使用
reflog
来“回滚”您所做的更改,但请再次阅读附件中的所有内容

git reflog
这将使你回到你想要的承诺


如何恢复更改? 或者:你还能做什么? 重要通知
git永远不会丢弃数据,除非执行gc。所以,即使您没有看到这个提交,它仍然在您的本地存储库中,您也必须找到它

您可以通过执行git fsck来找到它,它将“查找”此时无法访问的所有提交

如果您已经提交了更改(即使您只是将文件添加到stagings中,但没有提交文件,也是如此),您可以还原内容

每次向临时区域添加内容时,git都会开始跟踪它,并将其存储在
.git/objects
文件夹中

由于您添加了文件并提交了它们,它们已经存储在那里,一旦您执行了
git checkout master-f
文件仍在那里,但与您的repo“断开”连接

在git“language”中,它被命名为悬挂对象

您可以查看这些对象,只要不强制执行将删除它们的git gc

# scan your repo for dangeling file
git fsck --full
然后要查看内容,请使用:

git cat-file -p <sha-1>
git cat文件-p

这可能是更改id
73139bb
?还记得上次更改时输入的提交消息吗?很可能就是那条消息。这也可能会有所帮助。使用“git log--oneline--decoration--all--graph”代替“git log--one line--decoration--all--graph”将更好地展示您的所有历史。我们