Git删除了所有文件

时间:2018-06-22 18:21:23

标签: git git-flow git-reset

我刚刚通过应用

初始化了存储库
git flow init
git remote add origin git@gitlab.com:folder/project.git
git add .

我注意到我需要先评论一个文件夹,然后使用

git reset --hard

并尝试将文件夹添加到.gitignore,但是在我使用之后,所有未跟踪的文件夹都已删除

git clean -f -d

现在我什么都没有了,我失去了我的整个项目,而且我不知道如何还原它。

1 个答案:

答案 0 :(得分:2)

您要问为什么所有项目都消失了,所以让我们分解一下您运行的git命令:

  1. git flow init大致等同于git init,并使用从master派生的develop分支来提交空的“初始提交”。
  2. git remote add ...将GitLab遥控器添加为本地遥控器,以便您可以推/拉它。
  3. git add .将本地目录.中的所有内容添加到您的临时区域中,可以在其中进行提交。到目前为止一切都很好!
  4. git reset --hard是您遇到麻烦的地方。 The git documentation显示--hard 重置索引和工作树,因此对跟踪文件的所有更改都将被丢弃。这意味着您刚刚添加的所有内容都将在上一次提交(空提交)中恢复到其状态,因此您的文件已删除。
  5. git clean -f -d只是强行删除未跟踪的目录,我希望您在硬重置后都没有这些目录。

将来,我建议阅读git reset的文档,以便您了解为什么它可以与--hard一起使用。作为记录,您想要在此处运行的可能只是git reset,没有任何参数,这将取消所有已登台的更改的执行,但不会删除任何代码。然后,您的其他命令(如编辑.gitignore)的行为将与您预期的一样。