21

Я довольно новичок в использовании git, и мне было интересно, можно ли копировать Git-репозиторий с помощью общих команд UNIX (например, cp или tar/untag), а не через git clone .

Я нахожусь в ситуации, когда у меня есть производственная среда (виртуальная среда Python), в которой какой-то код проверен в git. Мне интересно, если это плохая идея с точки зрения git - копировать всю среду, используя tar или что-то в этом роде. Этот подход был бы удобен для создания быстрой копии кодовой базы / среды.

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

3 ответа3

20

Это прекрасно.

git хранит всю свою историю, коммиты и т. д. на месте - это фундаментальное свойство DCVS.

Технически говоря, git может нормально работать с копируемыми репозиториями, которые работают повсюду, потому что весь смысл DCVS в том, что ему не нужно знать, что происходит вне любого данного репозитория, и на самом деле нет, если вы не скажете это ,

Тот же принцип применяется здесь.

2

Вы должны быть в состоянии скопировать весь рабочий каталог в любое место в вашей системе и продолжать работать в обычном режиме при использовании Git, Hg или SVN. Я не могу комментировать другие СКМ.

0

Это более необычный вариант использования, но ...

Я видел, как утилита repo делает символические ссылки в каталоге .git . В этом случае, когда вы делаете копию, вам нужно убедиться, что вы разыменовываете символические ссылки. Например:

cp -r -L <source-repo-dir> <destination-repo-dir>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .