TL; DR:我没有添加文件,没有推送更新,现在在以前的提交中看不到文件-我想还原它们。
发生了什么: 一次提交时,我忘记将它们添加到索引中,然后又恢复为先前的提交。
是否可以通过diff
或其他方式还原这些文件?当git在存储库中有未添加文件的情况下尝试提交时,这些文件会发生什么? Git会在任何地方保存有关它们的信息吗?它可以在任何地方保存他们吗?它会完全删除它们吗?
我正在研究Visual Studio代码,并准备了GitLens,以防它们可能有用。
更新:我认为我发现那些未跟踪的文件被保存为悬垂的斑点或无法访问的对象。我目前正在检查这个方向。
答案 0 :(得分:0)
找到了解决方案:
*注意:这不会恢复文件名。
git fsck --unreachable
获取所有unreachable
对象的列表,该列表为每个对象显示其SHA-1 ID。git show <SHA-1 ID>
读取每个对象的内容。