git - Git:恢复已添加但未提交的消失文件
问题描述
四个星期前我开始使用 git 在两台计算机之间同步文件。最近两周我没有提交任何更改。昨天我想添加第三台计算机。匆忙中,我在计算机 1 上运行了一些命令来创建一个新分支 ( PreAlgo
) 并提交过去两周的更改。在计算机 3 上并行,我试图获取 repo 的当前状态。
不幸的是,我在计算机 1 上添加的所有文件都消失了。我可以从两台计算机上恢复我所有的 git 命令和来自 Matlab 历史记录的一些响应。但由于我同时在两者上工作,我无法恢复两台计算机之间的命令顺序。
我知道下面的代码是如何不使用 git 的示例。计算机 1 的初始分支是AddFinEval
. 我知道我犯了很多错误。非常感谢恢复文件的提示。
命令计算机 1
>> ! git branch PreAlgo
>> ! git commit -m "PreAlgo" --all
>> ! git push origin PreAlgo
>> ! git add PredictAvailability.m % this file did not diasappear
>> ! git commit -m "PreAlgo" --all
>> ! git push origin PreAlgo
>> ! git add AlgorithmPlayground\ % files from this path disappeared
>> ! git add Predictions % files from this path disappeared
>> ! git commit -m "PreAlgo" Initialisation.m
>> ! git push origin PreAlgo
>> ! git commit -m "PreAlgo" Initialisation.m
>> ! git push
>> ! git checkout PreAlgo
>> ! git commit -m "PreAlgo" --all
>> ! git checkout AddFinEval
Switched to branch 'AddFinEval'
>> ! git commit -m "PreAlgo" --all
Untracked files:
(list of some untracked files that did not disappear)
nothing added to commit but untracked files present (use "git add" to track)
>> ! git push origin AddFinEval
To https://github.com/myname/myrepo
命令计算机 3
>> ! git fetch --all
>> ! git reset --hard origin/master
>> ! git pull
>> ! git fetch --all
>> ! git reset --hard origin/master
>> ! git pull
>> ! git checkout PreAlgo
>> ! git fetch --all
>> ! git reset --hard origin/master
>> ! git checkout AddFinEval
>> ! git fetch --all
>> ! git reset --hard origin/master
>> ! git fetch --all
>> ! git reset --hard origin/AddFinEval
正如这里提出的如何恢复被 git 删除的文件?, 我试过了
! git fsck --lost-found
! ls .git/lost-found/other
但是我在 lost-found 中找到的两个文件只包含它们的标题。但是,在我发现文件消失时创建了.git/objects/pack
一个 600MB的文件。.pack
其中一个消失的文件夹包含一些大.mat
文件。
解决方案
推荐阅读
- python - json搜索功能
- python - Python Pandas 错误:“系列的真值不明确。” 使用 geopy 库设计新功能时
- visual-studio-code - 如何为没有扩展名的文件设置默认语言?
- python-3.x - 如何从数字末尾删除 .0?
- javascript - Azure 防火墙阻止系统请求,SQL 注入攻击:检测到 SQL 运算符
- midi - 如何从 MIDI 文件计算每个小节的节拍数
- javascript - 数组推送中的扩展或剩余运算符
- java - 在kotlin中调用java时如何检测可为空
- vue.js - 如何为静态网站创建 Click 方法
- java - 连接到嵌入式 Derby 数据库时出现 java.lang.NoClassDefFoundError