git rm undo 对于未添加的文件

标签 git

我是 git 的新手,我犯了一个大错误。其他相关线程没有解决我的问题。这是发生的事情,感觉“git rm”就像 Linux rm 命令一样工作。

一开始,我使用

将开发文件夹添加到 git repo 中
git add dir_name1

在过去的几天里,我在该目录中创建了更多文件并重命名了一些文件,我认为它需要在 git 中手动添加新文件,因为我在那之后提交了所有类型的更改,但新文件没有保存在存储库中。

今天完成工作后,我决定使用添加这些新文件

git add dir_name1

我猜新文件会被自动找到并添加,但是当我看到一些临时文件(ubuntu中以“~”结尾的文件)也被添加了。

为了删除这些 tmp 文件,我认为“git rm”是“git add”的对应项,所以我可以执行“git rm dir_name1”,然后手动删除所有以 ~ 结尾的文件,然后执行“git add dir_name1” "再来一次就可以了。

所以我所做的是

git rm -r -f  dir_name1

天哪,整个目录都丢失了,用“git reset”恢复以及其他一些技巧都没有恢复这些新文件。

“git rm”是否像 Linux“rm”命令一样删除?有没有办法恢复这些文件。

SOSSSSS

最佳答案

I saw that some temporary files (file ending with "~" in ubuntu) were also added

.gitignore 中的一个简单的 *~ 就可以防止这种情况发生

I could do "git rm dir_name1" followed by delete all files ending with ~ manually

git rm -r -f dir_name1 (或 rm -r -f dir_name1)将从磁盘中删除文件夹及其内容,无论是否带有 git.

您可能仍然可以找到以前添加(暂存)的文件:

git fsck --cache --unreachable $(git for-each-ref --format="%(objectname)")

在“Undo git reset --hard with uncommitted files in the staging area”中阅读更多内容

关于git rm undo 对于未添加的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33429148/

相关文章:

Gitlab 仓库不存在问题

git - 致命的 : bad default revision 'HEAD'

git - 如何使用 git cherry-pick 跳过不精确的重命名检测

android - 如何在 Windows 中使用 git bash 克隆 Android 项目

git - Git 和 libgit2 的区别

git - 使用 git 获取新的上游分支

git - 从旧的 LFS 仓库迁移到新的 LFS 仓库?

git - 如何在没有来源的 Git 上使用 zsh 选项卡补全?

c# - 如何使用 VisualStudio git 扩展通过密码访问来访问远程存储库?

git - 使用早期(?)结束底漆解析智能 http git-upload-request 响应