【发布时间】:2021-03-26 03:16:03
【问题描述】:
我知道这是一个愚蠢的错误,但请听我说完。
我有一个 git repo(在 GitHub 上有一个遥控器),我想创建一个新分支。我不会说我对 git 很陌生,我已经使用了很长时间并且喜欢认为我可以做一些体面的 repo 工作。
现在,这个 repo 大部分都是二进制数据,这是因为 repo 没有代码,而是我的软件使用的专有二进制数据文件。
回到问题上来,我决定为我的合作伙伴创建一个新分支,他使用不同的数据文件。 我的工作树不干净,大约有 2 或 3 个修改文件和 1 个新文件。我运行了以下内容:
git branch kicad
git checkout kicad
(no error is shown about dirty working tree/uncommitted changes)
rm ./my_data_files
md partners_data_files
git add .
git commit
这删除了我的项目和数据文件,并为我的合作伙伴做好了准备。当我切换回主分支时,我因失去工作而愉快地头部中弹。我的数据文件仍然存在,但我所做的未暂存/提交的更改已经消失。
我现在尝试恢复这个大约 2 小时,但没有成功。
以下是一些命令的输出:
git reflog
0fad3c8 ... checkout: moving from kicad to main
3b0a8dc ... checkout: moving from kicad to kicad
3b0a8dc ... checkout: moving from main to kicad
0fad3c8 ... reset: moving to HEAD
(This is when I realized changes were gone)
0fad3c8 ... checkout: moving from kicad to main
3b0a8dc ... commit: Initial Kicad Commit
0fad3c8 ... checkout: moving from main to kicad
0fad3c8 ... commit: Connected VCC, might have to redo due to uC stuff
git fsck --lost-found
Checking object directories: 100% (256/256), done.
Checking objects: 100% (1266/1266), done.
dangling blob acd050aef0bd6151b46f99ea038af062110622ad
dangling blob dae060387c5998e4c2461fbaf003558222eb30d0
dangling tree 1f21c30039821372359108c6bc747a7510f93ce7
dangling blob c53216ba759028d68c64ca80bb1cc23a3aa025a9
dangling commit d8b2cf1f8c088f9fcc6990bd788bbc18615ebe41
dangling blob e642369390cb27753f17fee430a60db08719115a
dangling blob 7004c58d393d1e54c6080a8bf4eae9a56f25c160
dangling blob 8914c8d1aa0d9857fc9dfd7680db9590916827b1
dangling blob aa9433c2a651ad8c9878274007f39e61562570d8
dangling blob 5fa66c17c63b384a8120dee4dbadb726427e372e
dangling blob 22b71a4553fe6af87528aafaeb50133e21ca9938
dangling blob 3197630158eb88f93d2626a3cca8c1dab52d50b8
dangling blob 0308d60f2b21f83d941fdff735888549d19f17b1
dangling blob 7f68dac2ec15393bea041d87541d1fbb360bc065
dangling tree 8588ef3d5242870e9aedf782674122ab20b8f28f
dangling commit 35d9c0eb3b49b808ffa2178a3f098fe7a4b44d91
dangling commit 38ed38b357bb113d6bd43d99b391711933db123b
dangling commit 371d767b784a7119b3523de88aeee85748f83230
dangling blob 539dccc2799619ccd7bd588b0615415f25f62bed
dangling blob c5fd0dc4261c1481f3a3991c2311440643df9aac
dangling blob 087ed8e94498048c6702fd098e0d948593d9d93b
dangling blob 2b5e415606b875839c782cb226762273b023793d
dangling blob c14e5265de71f27b74cc06fb461886753b495021
dangling blob db4f32caf30cdf922918315954ffa3d1d0e775d8
我尝试了重置、还原、签出,但没有任何效果。
回购是here。我读了一些回答说这是不可能的,但我不确定这个。欢迎任何回复,我很乐意提供详细信息。
编辑 1:我不想恢复那些已删除的文件。我要恢复的是当我从主分支签出到另一个分支 (kicad) 时丢失的更改,我在其中删除了文件。
【问题讨论】: