我是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
答案 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
目录,它可能会在太空中丢失。