Git 提交在完成之前停止

标签 git

这可能令人难以置信,但当我断电时,我正在执行提交。幸运的是,我从未 push 提交。我刚恢复供电,当我尝试在目录中执行 git log 时出现错误:

fatal: bad default revision 'HEAD'

这是一个私有(private)存储库,我已经使用了一个多星期,并进行了大约 5 到 10 次提交。

我查看了 SO 并找到了 Git tracking entire home directory. Get error - fatal: bad default revision 'HEAD' ,这没有任何帮助,因为我已经运行了 git init!

我刚刚运行了 ls -la 来查看我的 .gitignore 文件是否还在,但是你瞧,它不见了。我应该怎么办?我不想失去我以前的提交历史。

我对 Git 的了解有限。任何帮助将不胜感激。

编辑 1:

我只有一个分支(master),当我尝试:git symbolic-ref HEAD refs/heads/master 它没有改变任何东西。

我也看了git log and show on a bare repo并尝试:

git log --graph --oneline --date-order --decorate --color --all

这给了我:

095cdaa (origin/master) added profile layout
dd9ddec fixed nav bar
4e99ca7 remove unecessary files, add resources, start navigation drawer
8b09709 fix README
c64c422 initial commit

然后我尝试了 git branch master 095cdaa...,这给了我错误:

fatal: Failed to resolve HEAD as a valid ref.

编辑 2:

为了快速解决这个问题,我按照@PaulGriffiths 的建议做了:

  1. 克隆存储库
  2. 复制修改后的文件并提交
  3. 运行 rm -f ./.git/index.lock

最佳答案

看看:Git internals - Maintenance and Data Recovey在官方的 git 书中。

如果您的 reflog 仍然完好无损:

git reflog

将显示 HEAD 的最后状态列表犯罪。尝试运行 git checkout <hash>在列出的提交之一上,然后 git branch <newBranchName> .

关于Git 提交在完成之前停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23705089/

相关文章:

svn - HEAD 和 SVN Master 之间的 Git 差异

Git 和 Visual Studio 项目引用

Git:如何在最后一次 stash 之前获得 stash ?

git - 在 Git 中,您如何查看和管理不在分支中的提交?

linux - 使用 Linux 和 Windows 时最好的 git 配置设置是什么?

windows - 无法在 git bash 中运行 'git' ... "bash:/mingw32/bin/git: Bad address"

git - 有点 git 麻烦

git - 在相互依赖的多个 git 分支上工作

git - 获取 merge 到另一个分支的分支列表

git - git svn 是否支持 svn :needs-lock?