Я начал использовать git четыре недели назад для синхронизации файлов между двумя компьютерами. Последние две недели никаких изменений не делал. Вчера хотел добавить третий комп. В спешке я выполнил несколько команд на компьютере 1, чтобы создать новую ветку (PreAlgo
) и зафиксировать изменения за последние две недели. Параллельно на компьютере 3 я пытался получить текущее состояние репозитория.
К сожалению, все файлы, которые я добавил на компьютер 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
я нашел файл .pack
размером 600 МБ, созданный примерно в то время, когда файлы исчезли. Одна из исчезнувших папок содержала несколько больших .mat
файлов.
Predictions
. Когда я попытался оформить заказ в PreAlgo, я получилerror: The following untracked working tree files would be overwritten by checkout:
и список с новыми созданными файлами, который был слишком длинным для полного отображения. Таким образом заканчиваетсяAborting
. Сначала не решался попробовать прошивать или удалять новые файлы. Но теперь я это сделал, проверил наPreAlgo
и все недостающие файлы у меня там. - person konjunkturkrise   schedule 03.10.2020