Перемещение git-репо на второй компьютер? - PullRequest
54 голосов
/ 02 мая 2011

У меня есть проект с простым локальным репозиторием git, и я хочу переместить этот проект (папки и т. Д.) На другой компьютер и работать с этого момента. Я не хочу, чтобы что-то осталось на старой машине (кроме, конечно, моих других проектов git). Я хочу, чтобы все было так, как будто я все время работал с новой машиной.

Могу ли я просто переместить все файлы на этот компьютер, или возникнут проблемы с ключами? Должен ли я иметь один и тот же ключ на двух машинах? Что делать, если просто переместить все папки? Я хочу избежать хлопот по настройке и обучению использованию сервера, поскольку это кажется сложным, и я не хочу менять свой рабочий процесс.

Ответы [ 4 ]

60 голосов
/ 02 мая 2011

В вашем случае лучший способ сделать это - скопировать папку (copy, scp, cp, robocopy - в зависимости от того, что) в новый компьютер и удалить старую папку.

Я полностью не согласен с@Pablo Santa Cruz, что клонирование - это парадигма того, что вы делаете.Нет.Вы переносите хранилище на новый компьютер.

Почему я не люблю клон для этой цели:

  • Он создает ветви удаленного отслеживания для каждой ветви вклонированный репозиторий .Вы двигаетесь, и старый репо перестал существовать.
  • Любые удаленные ветви и другие ссылки полностью игнорируются.
  • Вы не получите свои хуки, еслиу вас есть что-то, и вы можете забыть, что они у вас есть!
  • Вы не можете получить «потерянные» коммиты и т. д., используя git reflog или другие средства. Может не быть большой проблемой, особенноесли репозиторий выступал в роли сервера, но о чем-то нужно знать.

Если вы ищете способы резервного копирования git-репо, git clone не окажется в числе первых ответов.Так что его нельзя использовать для перемещения репо!Я также чувствую, что просто git clone не может быть правильным ответом, потому что git clone имеет опцию --mirror, которая сохраняет репо, что означает, что репо git clone отличается от git clone --mirror репо(кроме того, что различия, в основном, те, о которых я упоминал выше).Я сделал бы копию, потому что я знаю , что я получаю с скопированным репо - тот же репо!

Когда рассматривать git clone: ​​

  1. Это быстрее, так как git выполняет некоторую оптимизацию при клонировании.
  2. Возможно, на новом компьютере у вас другая версия git, а копия может сделать репо непригодным для использования в другой версии (в настоящее время не очень распространено).Но на самом деле это может быть еще один профессионал для копирования, так как это сообщит вам, что новый компьютер имеет другую версию git.
3 голосов
/ 02 мая 2011

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

0 голосов
/ 02 мая 2011

Поскольку каждый клон тоже является репо, просто клонируйте первый на своем втором компьютере.

0 голосов
/ 02 мая 2011

Вместо копирования я бы порекомендовал вам clone хранилище. Клонирование - это правильная парадигма того, что вы пытаетесь достичь. Клонированный проект также будет содержать все git метаданные и информацию с ним.

На получателе:

$ git clone git://your-repo/proj proj

Вместо использования git:// вы также можете использовать протоколы ssh:// или http:// для доступа к хранилищу. Для получения дополнительной информации см. Руководство git.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...