git rm撤消未添加的文件

时间:2015-10-30 05:18:59

标签: git

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

一开始我使用

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

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

今天完成工作后,我决定使用

添加这些新文件
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

2 个答案:

答案 0 :(得分:2)

  

我看到一些临时文件(在ubuntu中以“〜”结尾的文件)也被添加了

*~中的简单.gitignore会阻止

  

我可以执行“git rm dir_name1”,然后删除所有以~manual

结尾的文件
无论是否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

中的详情

答案 1 :(得分:1)

执行此操作的正确方法是添加整个目录,然后删除讨厌的Linux系统文件:

git add dir_name1
git rm -r '*.~' 

如果你想让Git忽略.~个文件,你可以这样做:

echo '*.~' >> .gitignore

唉,如果你从未提交dir_name1目录,它可能会在太空中丢失。