假设我fileA
在 commit中删除了abc123
。然后,当 I 时,显示git reset
的输出被删除。不再在我的工作目录中,所以我无法重新添加它。git diff
fileA
fileA
的默认git reset
值为git reset --mixed
。这描述man git-reset
为:
重置索引但不重置工作树(即保留更改的文件但未标记提交)并报告尚未更新的内容。
什么是优雅的解决方案。一种解决方法是签出包含该文件的后续提交,复制该文件,然后签出abc123
并再次添加它。
解决方案:
以下两个解决方案是正确的。一个展示了如果您签出文件被删除的提交,如何恢复文件,并且您只需运行git checkout fileA
. 另一个展示了如何在当前提交中恢复文件,该提交稍后于fileA
被删除的提交。您运行git checkout abc123~ -- file A
(--
确保 checkout 命令知道我们正在尝试回滚文件而不是更改分支)。