我的本地文件丢失了

时间:2013-01-18 05:44:58

标签: git

所以我在尝试将我的本地git存储库推送到github之后编辑了我的.htaccess文件。这是我第一次这样做并且遇到了一些问题,但现在我的.htaccess已经和/ assets目录中的大量其他文件一样消失了,我吓坏了。这就是我所做的:

  1. git在本地添加我的工作目录
  2. git rm我在我的存储库中不想要的文件
  3. git commit
  4. 尝试向某些问题推送到github.com,并尝试了一些事情,包括修剪
  5. 注意到我的存储库只有一个目录而另一个目录缺失
  6. 注意到我的.htaccess文件已经消失,以及'assets'目录中的所有文件,尽管文件夹仍在那里。
  7. 我从存储库中删除的其他文件仍在那里
  8. 我不知道发生了什么,但我检查了垃圾箱,我只有一个分支'Master',我的文件都没了。我只想让我的目录回来并完全删除git并重新开始。我假设当前目录反映了我所在的分支。

3 个答案:

答案 0 :(得分:0)

我认为你不想删除一些文件,只是告诉git不要跟踪它们。 为此,“git rm”确实是一个非常糟糕的主意。它也会从工作树中删除它们。

相反,您应该先将未跟踪的文件添加到.gitignore文件中,然后再将所有内容添加到存储库中。

git init
echo /assets > .gitignore
echo .htaccess >> .gitignore
git add .
git commit

至于恢复文件,我不知道......

答案 1 :(得分:0)

请尝试

git checkout master

看看它是否还原你的文件?

答案 2 :(得分:0)

我怀疑你做的是:

git add *

或者那些东西。该命令通常不包括您的“点文件”。 shell(可能是cmd,bash,zsh或者你正在使用的任何东西)定义了'*'如何进行通配。

然后你完成了剩下的工作,错误地认为你的所有文件都已添加。你没有检查'git status'的输出。

当你这样做时:

git rm file-you-do-not-want

您可能已忽略任何警告并尝试确保文件已消失。

在任何情况下,您最终创建的git提交都不包含您拥有的所有文件。将来,我建议您使用以下方法检查您拥有的内容:

git status
git gui
gitk

但是,如果文件之前存在于git中,那么您可能希望使用:

git reflog

向您显示之前提交的以前提交的列表。尝试迭代检查那些提交sha1,看看它们是否包含“缺失”文件。