Возможно ли восстановить коммиты в локальные ветви из origin / master?

#git #github

#git #github

Вопрос:

Я подозреваю, что это невозможно, но, кажется, стоит попробовать. Ранее я поддерживал локальный репозиторий, состоящий из главной ветви и нескольких функциональных ветвей. Ветка master отслеживалась удаленным репозиторием на GitHub с регулярным использованием git push для поддержания всего этого в актуальном состоянии.

После катастрофического локального сбоя и сегодняшнего «восстановления» с GitHub на новую машину я понял, что немалый объем незавершенной работы по разработке функциональных ветвей оказался утерян.

Тогда возникает вопрос — возможно ли, чтобы какие-либо коммиты в локальное репозиторий за пределами local / master были доступны в репозитории GitHub, и, если да, то какие команды будут их извлекать?

Комментарии:

1. В какой-то момент вы сказали, что регулярно нажимали, но в конце вашего вопроса я не так уверен. Вы нажимали? Если да, то теперь вы можете fetch их, конечно. Ваше последнее предложение довольно запутанное, возможно, стоит переформулировать его. Потому что ответ на вопрос, приведенный в названии , определенно «да».

2. Я регулярно отправлял главную ветвь на GitHub (и непосредственно перед катастрофой); но в репозитории GitHub есть только главная ветвь. Теперь я предположил, что удаленные ветви, возможно, требовалось создать на GitHub для отслеживания моих локальных ветвей функций, но я никогда этого не делал, поэтому я не знаю, что бы я fetch использовал?

3. На удаленном компьютере находится только то, что загружено. Удаленные устройства волшебным образом не синхронизируются с вашим локальным репозиторием. Какова природа вашего катастрофического сбоя? Ваш жесткий диск разрядился? Эти не загруженные данные потеряны.

4. К сожалению, катастрофой была кража ноутбука, поэтому на самом деле ее невозможно восстановить. К счастью, большинство функциональных ветвей были недавно объединены в local master, так что потеряно не так уж много, но, надеюсь, эта информация ценна для людей, поскольку я (по глупости) предположил, что у меня есть резервные копии всего на GitHub; урок, который я не забуду в спешке!

Ответ №1:

Поскольку вы прояснили свой первоначальный вопрос с :

в репозитории GitHub есть только главная ветвь. Теперь я предположил, что удаленные ветви, возможно, требовалось создать на GitHub для отслеживания моих локальных ветвей функций, но я никогда этого не делал

Тогда, если функциональные ветви (я имею в виду, отличные от master того, что, по вашим словам, было передано) никогда не передавались на удаленный сервер, все коммиты, которые у них были, которые также были не объединены в master , да, к сожалению, потеряны.

Ваша лучшая надежда — сохранить в master истории хотя бы часть того, что вам нужно, и перестроить из того, что может быть.

Ответ №2:

Я хотел бы добавить, что если у вас все еще есть ваш локальный клон, где присутствовали ветви, в чем я не слишком уверен, основываясь на вашем:

После катастрофического локального сбоя и сегодняшнего «восстановления» с GitHub на новую машину

вы можете использовать reflog (который представляет собой журнал HEAD позиций). Если вы недавно проверили эти ветви, вы увидите их коммиты здесь.

Комментарии:

1. Я должен признать, что в своем ответе я предположил, что «катастрофический» означает что-то неустранимое в любом случае.