0

我已经在我的应用程序上工作了 1 周而没有提交。我是 git 新手,所以请不要因为我在 master 上做了所有事情而抨击我。

无论如何,我有 1 个文件,由于错误,它的大小必须为 1gb。当我删除它并进行新的提交时,它仍然希望在推送时上传大文件。所以我决定用谷歌搜索如何删除提交,我在没有阅读文档的情况下使用了这个命令。

    Jans-MacBook-Pro-2:js3 jan$ git reset --hard HEAD~1
HEAD is now at afcb5ad fix dev log
Jans-MacBook-Pro-2:js3 jan$ git reset --hard HEAD~1
HEAD is now at b5ac226 work in progress
Jans-MacBook-Pro-2:js3 jan$ git reset --hard HEAD~1
HEAD is now at e6d938c stylesheet
Jans-MacBook-Pro-2:js3 jan$ git add .
Jans-MacBook-Pro-2:js3 jan$ git commit -a -m 'work in progress'
# On branch master
nothing to commit (working directory clean)

当我意识到发生了什么时……这是世界上最糟糕的感觉之一。有什么办法可以恢复我的工作?我做了很多事情,我什至不知道从哪里开始。

这是我的参考日志:

Jans-MacBook-Pro-2:js3 jan$ git reflog
e6d938c HEAD@{0}: reset: moving to HEAD~1
b5ac226 HEAD@{1}: reset: moving to HEAD~1
afcb5ad HEAD@{2}: reset: moving to HEAD~1
0c7d0d5 HEAD@{3}: commit: fix?
afcb5ad HEAD@{4}: commit: fix dev log
b5ac226 HEAD@{5}: commit: work in progress
e6d938c HEAD@{6}: commit: stylesheet

最后一次推送(1 周前)是样式表,所有其他提交都是从今天开始的。理想情况下,我喜欢他们中的任何一个。

进展 在我意识到发生了什么之后,我保存了我在 vim 中打开的所有选项卡。现在,当我尝试恢复时,我得到了这个。我该如何解决?

    Jans-MacBook-Pro-2:js3 jan$ git checkout afcb5ad
error: Your local changes to the following files would be overwritten by checkout:
    app/controllers/find_controller.rb
    app/models/search.rb
    log/development.log
Please, commit your changes or stash them before you can switch branches.
Aborting
Jans-MacBook-Pro-2:js3 jan$
4

3 回答 3

4

git reset不会破坏提交。

只要 git 从那时起还没有清理自己,您就可以运行git checkout afcb5ad以取回倒数第二个提交。

于 2013-04-26T17:10:45.160 回答
3

理想情况下,我喜欢他们中的任何一个。

好吧,您应该能够恢复到任何已承诺的转速。

在此处查看已接受的答案:如何撤消 git reset --hard HEAD~1?

于 2013-04-26T17:41:05.550 回答
0

您不能真正重置您尚未提交的任何内容,因为对象模型中没有存储任何内容。

于 2013-04-26T17:12:01.570 回答