【发布时间】:2018-09-06 16:47:50
【问题描述】:
我有一位艺术家在 git 中为一个班级项目工作。他在工作目录中有一个未被跟踪的资产。在提交文件之前,他执行了一次请求以获取最新的更改。上层文件夹必须已重命名,并且在拉取期间,他正在工作的文件夹已被删除,所有跟踪的文件都已移至新文件夹。所有未跟踪的文件似乎都被删除了。有没有办法恢复未跟踪的文件或使用 git reflog 和 git reset 恢复存储库?
【问题讨论】:
-
如果未跟踪的文件没有保存在任何地方,并且 pull 确实以某种方式删除了它,那么不,文件可能丢失了。但我似乎不记得 Git 正常删除未跟踪的文件。
-
这就是我的艺术家所说的。我还没有机会看他的电脑,但文件可能没有被删除,而是被移动了。目前我只是在等待时机。
-
一种猜测是 Git “看到”了一个或多个未跟踪的文件没有被跟踪,然后将它们“移动”到另一个位置。
-
艺术家在 MacOS 上工作。另一种可能性是文件夹名称导致了一些不可预见的问题。每当他推送一个新目录时,它都会在目录名称的末尾添加一个空格。每当我拉动时,GIT 都会出错并阻止拉动。我将不得不手动将文件夹从“hello”/重命名为“hello”/。拉取完成后,两个文件夹都将位于目录中。我会删除旧文件夹“hello”/,提交更改并将其推送到远程。我尝试在我的本地机器上复制这个错误,没有骰子,未跟踪的文件仍然存在。这给了我一些希望。
-
这听起来像个黑客。通常,如果您有需要的未跟踪文件,请在拉取之前添加。
标签: git git-pull git-reset git-reflog git-untracked