Есть несколько шагов, поэтому давайте пройдемся по ним.
Прежде всего, важно, чтобы вы понимали, что «потерянные коммиты» не теряются навсегда, а могут постоянно находиться надиск в течение ограниченного времени . очень важно, чтобы вы не продвигали и не изменяли репозиторий, о котором идет речь, прежде чем пытаться исправить вашу текущую проблему
Дополнительно, в зависимости от того, что выуже сделано в хранилище, может быть уже слишком поздно.Но давайте предположим, что это не так, и посмотрим, сможем ли мы восстановить ваш потерянный файл.
Сначала перейдите к рассматриваемому репозиторию GitHub, скажем, так (я в качестве примера использую свой собственный репозиторий,отредактируйте соответствующие биты, как указано ниже):
https://github.com/lassevk/LVK
^--edit---^
Тогда давайте немного отредактируем URL, чтобы получить журнал событий вашего репозитория:
https://api.github.com/repos/lassevk/LVK/events
^--edit---^
Это должно дать вам файл json,В этом json-файле вам нужно выполнить поиск для рассматриваемого файла или его содержимого, используя Ctrl-F в вашем браузере.Допустим, вы нашли его, и оно выглядит так:
"commits": [
{
"sha": "a52da7697640b77f0b2e16de8d6e8ad8c29924e2",
"author": {
"email": "lasse@vkarlsen.no",
"name": "Lasse Vågsæther Karlsen"
},
"message": "Rewrite HttpClient related code.",
"distinct": false,
"url": "https://api.github.com/repos/lassevk/LVK/commits/a52da7697640b77f0b2e16de8d6e8ad8c29924e2"
Видите, что там, ША?Скопируйте его и вставьте в ссылку следующего типа:
https://github.com/lassevk/LVK/commit/a52da7697640b77f0b2e16de8d6e8ad8c29924e2
^-------------------------edit----------------------------^
Если это даст вам "404 не найдено", то, насколько я знаю, вам не повезло.
Однако, если он открывает страницу фиксации, вы можете открывать измененные файлы один за другим и загружать их необработанное содержимое непосредственно на локальный диск в виде файлов, которые затем можно интегрировать в хранилище по своему усмотрению.
Если вы хотите создать ветку для фиксации и обработать ее позже, вы можете использовать этот URL вместо этого:
https://github.com/lassevk/LVK/tree/a52da7697640b77f0b2e16de8d6e8ad8c29924e2
^--edit---^ ^------------------edit----------------^
Это должно открыть браузер хранилища для этой фиксации, и вы можете затем использоватьраскрывающийся список ветвей для создания новой ветви, указывающей на коммит.Как только ветка указывает на коммит, он больше не теряется .
Например, вы можете локально сделать следующее:
git fetch
git checkout master # or whichever branch this is on
git merge NAME-OF-TEMP-BRANCH
Это должно объединитьфайл в вашу ветку.