【问题标题】:git reset --hard will make source code lost permanently when the file is added to the staging zone but not in repositorygit reset --hard 将文件添加到暂存区但不在存储库中时,源代码将永久丢失
【发布时间】:2019-10-07 13:08:38
【问题描述】:

我在索引中添加了一些新文件

git add .

然后重置

git reset --hard

git 在我的工作树中删除了这些文件,以前没有在存储库中,它们都丢失了。我丢失了所有数据。

【问题讨论】:

  • stackoverflow.com/a/5788069/6330106。您仍然可以找到添加的文件的内容。但是目录结构和文件名丢失了。
  • 您有问题吗?如果您想保留未提交的内容,为什么要硬重置?
  • 我想撤消添加。但将文件保存在工作树中。我运行了错误的命令,我应该使用 --mixed @jonrsharpe
  • @yuanjianpeng 是的,既然--mixed是隐含的,git reset就足够了。短期内丢失数据确实令人沮丧,但有时你不得不烧一次手才能吸取教训......
  • 如果您可能需要恢复工作树的内容的可能性很小,您可以使用git stash 而不是git reset --hard HEAD。这同样会删除对索引/工作树中跟踪文件的所有更改,但会将这些更改保留在存储中。如果您确实确定不需要您将要丢弃的更改,请仅运行 git reset --hard HEAD

标签: git git-reset


【解决方案1】:

来自 git 文档:

--hard 重置索引和工作树。此后对工作树中跟踪文件的任何更改都将丢弃

所以这完全按照文档记录。你可能想这样做

git reset

没有--hard 选项。

如果您想尝试恢复您的代码,请参阅Recover from git reset --hard?

【讨论】:

    猜你喜欢
    • 2017-11-23
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 2020-10-14
    • 2017-02-25
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    相关资源
    最近更新 更多