LINUX.ORG.RU

Как восстановить репозиторий git, если есть только клиентские части?

 ,


0

1

Сам remote был положен по ссзб-шности в /tmp/ дебиана. Сервер перегрузили, и... оппа.

Есть клиентская часть. Желательно восстановить в логами. Есть ли возможость?

★★★★★

Про логи не знаю, но каждая копия репы является полной, так что, просто сделай пуш всех веток на ремоут.

panter_dsd ★★★★
()

Сам remote был положен по ссзб-шности в /tmp/ дебиана.

хлопаем в ладоши стоя всем офисом.

MikeDM ★★★★★
()

Есть клиентская часть. Желательно восстановить в логами. Есть ли возможость?

есть.

Ваш вопрос не имеет смысла, т.к. в git(и в любой DVCS) не существует «клиентской» и «серверной» частей. Любой репозиторий «серверный».

Если вы что-то и потеряли, то лишь только то, что не включалось в репозиторий. Либо включалось в какой-то другой репозиторий(например у вас было два репозитория, один для сервера локальный. Тогда этот локальный очевидно безвозвратно потерян, а вы ССЗБ).

Есть клиентская часть.

э... Вы дурак, или толстый тролль? Вы про клиентский git, да? Вы ещё спросите «я в MS-Word писал поэму. Поэма потерялась, MS-Word остался. Можно восстановить поэму?»

emulek
()
Последнее исправление: emulek (всего исправлений: 1)
Ответ на: комментарий от emulek

я про remote и local. remote - серверный каталог репозитория, local - клиентский. немного неверная терминология, но, думал, что будет понятно.

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от MikeDM

дада, ночь перед релизом, под утро решили перегрузить сервер :)

bvn13 ★★★★★
() автор топика

вычитал http://stackoverflow.com/questions/4820039/creating-a-copy-of-local-git-repos...

про


On your server create the git repositories as bare repository

git init --bare repo.git

then, push the commits of your local repository

git push --mirror ssh://yourserver/~/repo.git



это поможет?

зы. в любом случае, уже проверяю
ззы. да, в /tmp/ remote клал не я :)

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от bvn13

remote - серверный каталог репозитория, local - клиентский. немного неверная терминология, но, думал, что будет понятно.

Ответь на простой вопрос: то, что у тебя осталось, — это все файлы, которые были в проекте, или каких-то больше нет?

Варианты:

а) Да, у меня есть все файлы проекта и полная история к ним
б) Не совсем: у меня есть рабочая копия каждого файла проекта, но истории для некоторых или всех файлов нет
в) Нет, некоторые из файлов утеряны безвозвратно

proud_anon ★★★★★
()
Ответ на: комментарий от bvn13

я про remote и local. remote - серверный каталог репозитория, local - клиентский. немного неверная терминология, но, думал, что будет понятно.

ты не думай, а расскажи, ЧТО у тебя вообще осталось. Вот здесь тебе верно сказали: Как восстановить репозиторий git, если есть только клиентские части? (комментарий)

emulek
()

проблема решена

было сделано то, что я писал:

git init --bare repo.git - на сервере
git push --mirror ssh://user@server/path/to/repo.git - с одной рабочей машины

потом изменил на всех клиентах в .git/config путь до новой remote репы (на ssh://user@server/path/to/repo.git). git pull, git commit, git push

после этого история сохранилась, есть все коммиты.

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от emulek

остались на тот момент лишь клоны репозитория на клиентских машинах для работы с кодом.

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от bvn13

лишь клоны репозитория на клиентских машинах

достаточно только _одного_ клона для восстановления _всего_ репозитория. Это же DVCS.

emulek
()
Ответ на: комментарий от emulek

да, именно один и был использован. с остальных были запушены недостающие коммиты, сделанные локально после смерти remote-репы.

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от bvn13

да, на будущее: в DVCS нет никакого «центрального сервера». По определению. У тебя это просто транзитный, который для всех доступен. В принципе вполне нормально держать его клон в /tmp, единственное, что ты теряешь, это один из бекапов.

emulek
()
Ответ на: комментарий от emulek

зануда мод: актуального клона.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.