3

git commit我用Ctrl+中断了我的本地 git 存储库C(两次提交)。我该如何解决?

输出git stash

$ git stash
fatal: bad revision 'HEAD'
fatal: bad revision 'HEAD'
fatal: Needed a single revision
You do not have the initial commit yet

输出git fsck --lost-found

$ git fsck --lost-found
notice: HEAD points to an unborn branch (Multi-Threading)
Checking object directories: 100% (256/256), done.
Checking objects: 100% (67/67), done.
error: refs/heads/Multi-Threading: invalid sha1 pointer 0000000000000000000000000000000000000000
dangling commit 2d5af11417b9508ece28c1bb1502e5299a2fa2d0
dangling commit 3b0dfd77c49c12a23469c036db7f45378a1bf740
dangling commit 47d212cf4c018b9f3544325a26c90f74d3323489
dangling commit 82674535931943f64b4a3475c14475591d84a318
dangling commit 83604cf338ccb0491081f7f27c2217bc11fba0c2
dangling blob a3133e60fe8fec7977270d1e93c0869e169024f1
dangling commit aae880196744421d1ffbf7dc23aa8965d4ee1f46
dangling blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
dangling commit f9558f1235c4a239b2c8d0677d2b1c31eb400836

输出git reflog

$ git reflog
fatal: your current branch 'Multi-Threading' does not have any commits yet

也无法写入.git/refs/heads/Multi-Threading

$ echo 47d212cf4c018b9f3544325a26c90f74d3323489 > .git/refs/heads/Multi-Threading 
An error occurred while redirecting file '.git/refs/heads/Multi-Threading'
open: No such file or directory
4

2 回答 2

3

中断 Git 不应该破坏存储库(Git 捕获键盘中断信号并优雅地处理它们),但此时,您需要弄清楚发生了什么.git/refs

  • 它作为目录存在吗?
  • 它是否包含一个名为 的文件packed-refs?如果是这样,请谨慎使用此文件的内容。如果没有,那可能没关系。
  • 它是否包含子目录headsremotes和/或tags?一个heads肯定存在,另外两个将在必要时创建。
  • 如果.git/refs/heads/确实存在,为什么在尝试创建其中命名的文件时会出错Multi-Threading

放入47d212cf4c018b9f3544325a26c90f74d3323489名为 do 的文件.git/refs/heads/Multi-Threading中看起来是一种正确的方法(尽管我不知道您为什么选择47d212cf4c018b9f3544325a26c90f74d3323489使用特定的提交;请注意,显示的git fsck提交顺序有些随机;但其中一个悬空提交可能是正确一个)。

(packed-refs 文件,如果存在的话,它包含被打包的引用值,以便占用一个文件而不是许多单独的文件。无论它具有什么格式都是 Git 喜欢的格式。请注意,创建.git/refs/heads/<name>文件将覆盖相应的packed-refs值。)

于 2018-04-16T14:55:41.420 回答
1

我的问题是由于系统错误。

我重新启动,重新执行echo 47d212cf4c018b9f3544325a26c90f74d3323489 > .git/refs/heads/Multi-Threading 没有错误,它解决了我的问题。

于 2018-04-16T15:20:40.940 回答