Подтвердить что ты не робот

Каталог rsync.git

Этот вопрос, вероятно, основан на моем недостаточном понимании роли реестров .gits и git в целом, но:

Могу ли я rsync с dir с содержимым, которое я создал с помощью git init между машинами?

У меня есть репозиторий на моем ноутбуке, и единственный способ убрать его оттуда - это scp/rsync на удаленный хост, из которого я могу загрузить его снова. Могу ли я rsync полную структуру каталогов между этими хостами?

4b9b3361

Ответ 1

Да, это возможно. IIRC, git использует относительный подход. Поэтому безопасно синхронизировать его с другим компьютером.

Ответ 2

Есть несколько возможностей:

  • Вы можете просто rsync репозиторий .git (или даже весь репозиторий вместе с рабочим каталогом), при условии, что вы не имеете никакой активности в репозитории во время rsync ing (тот же отказ от использования, что и для использования rsync://).

  • Вы можете клонировать или извлекать с использованием устаревшего протокола rsync (где URL/расположение репозитория выглядит следующим образом: "rsync://host.xz/path/to/repo.git/" ). Обратите внимание, что этот протокол устарел, потому что если в репозитории есть какая-либо деятельность, вы можете получить поврежденный клон (или выборку).

    Кроме того, как я уже слышал, он не работал корректно в присутствии упакованных ссылок с 2007 года, и никто не заметил до недавнего времени. Он исчезнет в Git 2.8.

  • Или вы можете создать git пакет, rsync it или scp он на другой машине, а затем клонировать или извлекать из пакета.

Ответ 3

Вы можете rsync без проблем, но если у вас есть какие-либо удаленные прокси файлы с именами хостов, которые являются локальными для машины (т.е. хранятся только в /etc/hosts ), то они, очевидно, не будут работать.

Однако есть ли причина, по которой вы не используете git для синхронизации содержимого?

Ответ 4

Да, вы можете, но вы должны сделать это с помощью открытого репозитория, как показано в этот поток.

$ git clone --bare ./projet projet.git
$ rsync -a --stats --delete ./projet.git/ votre.serveur:~/projets/projet.git/

Примечание: спустя 6 лет git 2.8 (март 2016) официально обесценит и полностью удалит протокол git rsync!

См. зафиксировать 0d0bac6 (30 января 2016 г.) Джефф Кинг (peff).
(слияние Junio ​​C Hamano - gitster - в commit 9f03176, 17 февраля 2016 г.

Оказывается, "git clone" по сравнению с rsync транспортом был нарушен, когда исходный репозиторий долгое время имеет упакованные ссылки и никто не заметил и не пожаловался на это.

Commit 0d0bac6 от Джефф Кинг (peff) содержит все детали.

Ответ 5

Да, rsync возможно использование dir .git и приведет к полному клону репозитория.

Ответ 6

Использование rsync для резервного копирования .git возможно, но с одним уловом (по крайней мере, для меня) Он не может быть обновлен. В следующий раз, когда вы попытаетесь снова запустить rsync, вы получите массивное переименование объекта.. и вы не можете удалить их. Не знакомый с системой rsync или linux, я очищаю резервную копию .git перед тем, как я ее запустил.

Что есть:

> chmod -R 777 /path/of/your/backup/.git
> rm -fr /path/of/your/backup/.git
> rsync /path/of/your/origin/.git /path/of/your/backup/.git

Я знаю, это очень налогообложение и глупо. Пожалуйста, дайте мне знать, есть ли лучший способ сделать это.