1

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

  1. git 在本地添加我的工作目录
  2. 我不想在我的存储库中的 git rm 文件
  3. git 提交
  4. 尝试通过一些问题推送到 github.com,并尝试了一些东西,包括修剪
  5. 注意到我的存储库只有一个目录,而另一个目录丢失
  6. 注意到我的 .htaccess 文件以及“资产”目录中的所有文件都消失了,尽管文件夹仍然存在。
  7. 我从存储库中删除的其他文件仍然存在

我不知道发生了什么,但我检查了我的垃圾箱,我只有一个分支'Master',我的文件已经消失了。我只想让我的目录回来并完全删除 git 并重新开始。我假设当前目录反映了我所在的分支。

4

3 回答 3

0

我怀疑你所做的是:

git add *

或类似的规定。该命令通常不包括您的“点文件”。shell(可能是 cmd、bash、zsh 或您正在使用的任何东西)定义了 '*' 如何进行 globbing。

然后,您错误地认为所有文件都已添加,从而完成了其余的工作。您没有检查“git status”的输出。

当你这样做时:

git rm file-you-do-not-want

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

无论如何,您最终创建的 git commit 并未包含您拥有的所有文件。将来,我建议您使用以下方法检查您拥有的东西:

git status
git gui
gitk

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

git reflog

向您显示您以前曾经进行过的先前提交的列表。尝试反复检查那些提交 sha1 以查看它们是否包含“丢失”文件。

于 2013-08-02T06:44:33.460 回答
0

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

相反,您应该在将所有内容添加到 repo 之前将未跟踪的文件添加到 .gitignore 文件中。

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

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

于 2013-08-02T06:12:04.817 回答
0

请试试

git checkout master

看看它是否会还原您的文件?

于 2013-08-02T06:17:14.020 回答