在git中恢复丢失的提交
我有一个本地存储库,我们称之为在git中恢复丢失的提交,git,Git,我有一个本地存储库,我们称之为a 在A中,我有很多失物招领处需要修复。 恢复上述承诺的最佳(也是最不危险的)方式是什么 (我真的说不出他们为什么迷路了,我真的以为我在做一个简单的“承诺,回家过一天”——类似于一个手术,但显然它变成了别的东西 编辑:执行一个git分支发现它丢失了\u找到了\u N结果是 error: Object #SHA1 is a blob, not a commit fatal: Not a valid branch point: `LOST_FOUND_N`. (其中,
a
在A
中,我有很多失物招领处需要修复。
恢复上述承诺的最佳(也是最不危险的)方式是什么
(我真的说不出他们为什么迷路了,我真的以为我在做一个简单的“承诺,回家过一天”——类似于一个手术,但显然它变成了别的东西
编辑:执行一个git分支发现它丢失了\u找到了\u N
结果是
error: Object #SHA1 is a blob, not a commit
fatal: Not a valid branch point: `LOST_FOUND_N`.
(其中,#SHA1
是a,那么,SHA1
,而N
是找到的丢失的编号
)
编辑2:对丢失的文件进行
git show
显示它们大部分映射到我丢失的文件(但并非所有文件都属于同一个提交(据我所知,我记不清每次提交的内容),甚至是同一个分支).我自己来回答这个问题:
请注意,这个答案是针对这个问题的,而不是magick的通用解决方案:
git显示文件
git show FILE>FILENAME
请注意,这只提供您找到的文件的内容,而不是目录的结构。我将自己回答这个问题: 请注意,这个答案是针对这个问题的,而不是magick的通用解决方案:
git显示文件
git show FILE>FILENAME
请注意,这只提供您找到的文件的内容,而不是目录的结构。我的.bashrc中有以下别名:
alias gitkall='git fsck --lost-found | awk "{ print \$3 ; }" | xargs gitk --all'
它生成一个命令gitkall,它显示存储库中的每个修订,包括历史编辑等遗留下来的修订
在gitk gui中,标记有趣的丢失修订、创建新分支等操作非常简单直观。我的.bashrc中有以下别名:
alias gitkall='git fsck --lost-found | awk "{ print \$3 ; }" | xargs gitk --all'
它生成一个命令gitkall,它显示存储库中的每个修订,包括历史编辑等遗留下来的修订
从gitk gui,标记有趣的丢失的修订、创建新的分支等非常简单直观。我认为您应该分享更多详细信息以获得有用的响应。您是如何丢失这些提交的?您是在本地存储库还是远程存储库中丢失的?啊,感谢您的响应,我不完全确定要包含什么。repo是一个本地一号,除了生产代码外,我很少推送任何东西。至于我是如何丢失它们的,这是一个很大的谜,因为它是几天前发生的。但基本上,我以为我在做一个简单的“提交,回家一天”,但显然我做了其他事情。如果你确定你提交了这些更改(几乎不可能恢复未承诺的内容)您可以查看
git reflog
。它显示了存储库的扩展历史。您最感兴趣的应该是写着“提交…”的条目。如果幸运的话,您可以通过它们的消息在reflog中找到提交。然后我们可以考虑进一步的步骤。我知道,更改已经提交。问题是git reflog
没有显示提交。我认为您应该分享更多详细信息以获得有用的响应。您是如何丢失这些提交的?您是在本地存储库还是在远程存储库中丢失的?啊,感谢您的响应,我不完全确定要包含什么。回购是本地的,我很少推送生产代码以外的任何内容。至于如何我把它们弄丢了,这是一个很大的谜,因为它是在几天前发生的。但基本上,我以为我在做一个简单的“提交,回家过一天”,但显然我做了其他事情。如果你确定你做了这些更改(几乎不可能恢复未提交的内容)您可以查看git reflog
。它显示了存储库的扩展历史。您最感兴趣的应该是写着“提交…”的条目。如果幸运的话,您可以通过它们的消息在reflog中找到提交。然后我们可以考虑进一步的步骤。我知道,更改已经提交。问题是git reflog
不显示提交。