Git 在重新基址期间删除了文件,如何将其取回?

Git 在重新基址期间删除了文件,如何将其取回?,git,rebase,Git,Rebase,我正在进行一次重新设置,不小心删除了我的一个文件 当我试图通过git checkout取回它时,它告诉我 error: path 'foo' is unmerged 当我试图通过git reset foo将其取回时,出现以下错误: fatal: ambiguous argument 'foo': unknown revision or path not in the working tree. Use '--' to separate paths from revisions 我怎样才能取回

我正在进行一次重新设置,不小心删除了我的一个文件

当我试图通过git checkout取回它时,它告诉我

error: path 'foo' is unmerged
当我试图通过git reset foo将其取回时,出现以下错误:

fatal: ambiguous argument 'foo': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions

我怎样才能取回我的文件

“路径未合并”错误表明您不仅删除了一个文件,而且与之存在某种冲突。但是,如果您能够找到一个干净的工作树和索引(
git status
除了一些未跟踪的文件外,没有显示任何输出),并且如果您仍然没有名为“foo”的文件,那么选择一个commit,比如HEAD~5,它的状态为“foo”,以及
git checkout HEAD~5--foo
有用的提示,Catherine可以使用
git show HEAD~5:foo
查看该文件的状态。@basicxman:确实有用,但它需要一个冒号:
git show HEAD~5:foo
。谢谢您的回答。我认为冲突的事情是正确的——我必须解决其中的合并冲突,但我没有签入它,而是删除了它(这是我在重定基址时保持对话的结果)。问题是,现在我无法重新设置基址,因为我无法添加一个不存在的文件。我应该只
git rm
it,然后稍后再检索它吗?这会对我的重设基础产生负面影响吗?也许最简单的方法就是删除它,重置它,然后重新检查它。也就是说,
git rm foo
分阶段删除并消除冲突,
git reset foo
将其卸载,然后
git checkout HEAD~5--foo
获取您的首选版本。当然,在这一点上,这将失去再基础引入的更改。我不确定是否有办法在不重新启动基础的情况下恢复这些文件,因为您已经删除了带有冲突标记的文件。