撤消删除 Git 中被忽略的文件
Undo delete of an ignored file in Git
我试图修复 Git 中的一些合并冲突,但我删除了我的媒体文件夹(间接),其中包含我的网站所需的所有图像。我本可以从 Git 中提取,但我不能,因为 .gitignore 会忽略媒体文件夹。
我从git拉出来的,但是它说
error: Your local changes to the following files would be overwritten by merge.
所以我隐藏了我的目录,然后再次尝试拉取。由于一些合并冲突,我在 git checkout -- .
.
之后隐藏、提交,然后尝试将 HEAD 重置为上一次提交(我认为这是文件夹被删除的地方)
有什么方法可以撤消删除操作吗?
幸运的是:您描述的操作不包括会从磁盘中删除未跟踪文件的操作。您的媒体文件夹可能最终被隐藏起来了。
运行 git stash list
检查你有多少藏品。
您可以使用常规 git 命令来检查存储的内容。例如,您可以使用 git ls-tree
:
列出存储中的文件
git ls-tree stash@{xx}
git ls-tree -r --name-only stash@{xx}:media/folder
# actually, 'git ls-tree' works on any commit (not just stashes)
如果您在这些藏品之一中看到您想要的内容,只需 运行 :
git stash apply stash@{xx}
# if its the first stash (stash@{0}), shortcut is :
git stash apply
我试图修复 Git 中的一些合并冲突,但我删除了我的媒体文件夹(间接),其中包含我的网站所需的所有图像。我本可以从 Git 中提取,但我不能,因为 .gitignore 会忽略媒体文件夹。
我从git拉出来的,但是它说
error: Your local changes to the following files would be overwritten by merge.
所以我隐藏了我的目录,然后再次尝试拉取。由于一些合并冲突,我在 git checkout -- .
.
有什么方法可以撤消删除操作吗?
幸运的是:您描述的操作不包括会从磁盘中删除未跟踪文件的操作。您的媒体文件夹可能最终被隐藏起来了。
运行 git stash list
检查你有多少藏品。
您可以使用常规 git 命令来检查存储的内容。例如,您可以使用 git ls-tree
:
git ls-tree stash@{xx}
git ls-tree -r --name-only stash@{xx}:media/folder
# actually, 'git ls-tree' works on any commit (not just stashes)
如果您在这些藏品之一中看到您想要的内容,只需 运行 :
git stash apply stash@{xx}
# if its the first stash (stash@{0}), shortcut is :
git stash apply