Как восстановить Git после фатальной ошибки файловой системы?

StackOverflow https://stackoverflow.com/questions/552832

  •  23-08-2019
  •  | 
  •  

Вопрос

Какой самый быстрый способ восстановить репозиторий git после ошибки файловой системы на главном сервере?

Представьте, что центральный сервер вашего проекта OSS выходит из строя, и все коммиты за два дня теряются после восстановления.Как ты получаешь их обратно?Достаточно ли просто вызвать "git push" на всех клиентах?Или есть что-то еще, что я должен принять во внимание?

Это было полезно?

Решение

Каждый репозиторий также является резервной копией “основного репозитория” (который является “основным” только по соглашению), так что git push из репозитория, который сделал самый последний git fetch или git pull должно быть все, что нужно — до его состояния, конечно.Вам нужно только позаботиться о крючках и тому подобном, но если вы скажете, что были потеряны коммиты только за последние два дня, они, вероятно, все равно не пострадали.

Другие советы

A git pull и затем a git push должно быть достаточно.

Поочередно a git push -f принудительно обновит сервер вашей локальной копией, но это может вызвать проблемы у других (если есть несколько коммиттеров).

Дайте нам знать, если вы столкнетесь с какими-либо дальнейшими проблемами или ошибками.

Я думаю, было бы лучше создать новое репозиторий на сервере:

% ssh user@server
% mv /path/to/repo /path/to/repo.old
% mkdir /path/to/repo
% cd /path/to/repo
% git init --bare

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top