我刚刚通过应用
初始化了存储库git flow init
git remote add origin git@gitlab.com:folder/project.git
git add .
我注意到我需要先评论一个文件夹,然后使用
git reset --hard
并尝试将文件夹添加到.gitignore
,但是在我使用之后,所有未跟踪的文件夹都已删除
git clean -f -d
现在我什么都没有了,我失去了我的整个项目,而且我不知道如何还原它。
答案 0 :(得分:2)
您要问为什么所有项目都消失了,所以让我们分解一下您运行的git
命令:
git flow init
大致等同于git init
,并使用从master派生的develop分支来提交空的“初始提交”。git remote add ...
将GitLab遥控器添加为本地遥控器,以便您可以推/拉它。git add .
将本地目录.
中的所有内容添加到您的临时区域中,可以在其中进行提交。到目前为止一切都很好!git reset --hard
是您遇到麻烦的地方。 The git documentation显示--hard
重置索引和工作树,因此对跟踪文件的所有更改都将被丢弃。这意味着您刚刚添加的所有内容都将在上一次提交(空提交)中恢复到其状态,因此您的文件已删除。git clean -f -d
只是强行删除未跟踪的目录,我希望您在硬重置后都没有这些目录。将来,我建议阅读git reset
的文档,以便您了解为什么它可以与--hard
一起使用。作为记录,您想要在此处运行的可能只是git reset
,没有任何参数,这将取消所有已登台的更改的执行,但不会删除任何代码。然后,您的其他命令(如编辑.gitignore
)的行为将与您预期的一样。