Удаленная ветка Git удалена, как повторно синхронизировать локальные изменения с новой веткой

Я получил удаленную ветку как develop_1, которую я использовал. Все мои локальные изменения кода были зафиксированы в нем, но мой лидер случайно удалил эту удаленную ветку.

У меня есть все эти изменения кода в моей локальной системе. Теперь я хочу отправить все эти изменения обратно в тот же репозиторий Git в новой удаленной ветке, скажем, develop_2.

Как я могу создать новую ветку, синхронизировать мои локальные изменения и отправить их на удаленный сервер?


person Vinod Kumar    schedule 13.07.2018    source источник


Ответы (3)


В вашей локальной ветке develop_1 вы можете просто создать новую ветку:

$ git checkout -b develop_2

Отправьте свои изменения, а затем, чтобы синхронизировать локальное репо, запустите:

$ git fetch -p

-p предназначен для prune удаления локальных веток, в данном случае старой develop_1, которой больше нет на удаленке.

person nbari    schedule 13.07.2018

но мой лидер случайно удалил эту удаленную ветку

Если это на GitHub, вы можете вернуть SHA1 удаленной ветки с помощью «рефлог бедняка», также известного как push-события (GitHub Events API).
См. "Запоминает ли github идентификаторы коммитов?": ищите любые недавние push-события в ветке master: вы Затем можно получить эту фиксацию (и связанную с ней историю) обратно в локальное хранилище.
Если нет, Служба поддержки GitHub посмотрит, чтобы восстановить ваш предыдущий контент.

Затем требуется принудительное нажатие для восстановления той же истории на удаленной стороне.

Но еще проще, если ваши локальные изменения были сделаны поверх того, что уже было отправлено, вам не нужно создавать новую ветку: отправьте существующую ветку обратно.

person VonC    schedule 13.07.2018

Вы разветвляли удаленное репо, а затем клонировали его на локальном?

Если у вас есть изменения кода в вашей локальной ветке, скажем, local_dev, и вы хотите нажать на develop_2, тогда команда будет выглядеть так:

git push -u origin local_dev:develop_2 затем поднимите запрос на извлечение основного репо.

Если у вас есть прямой доступ к удаленному репо, напрямую отправьте изменения на удаленный. Нет необходимости поднимать запрос на включение

person Ravi    schedule 13.07.2018