У меня есть сервер, который я отключаю. Единственное, что мне осталось перенести, это мой репозиторий. Этот сервер указан как источник (мастер) для одного из моих проектов. Как правильно перемещать хранилище, чтобы сохранить историю.
264
Ответы:
Чтобы добавить новое местоположение репо,
Затем перенесите содержимое на новое место
Наконец удалите старую
После этого вы можете сделать то, что сказал bdonlan, и отредактировать файл .git / config, чтобы изменить new_repo_name на origin. Если вы не удалите источник (исходный удаленный репозиторий), вы можете просто отправить изменения в новый репозиторий с помощью
источник
git push -u new_repo_name --all
.git remote rename new_repo_name origin
Если вы хотите перенести все ветви и теги, вы должны использовать следующие команды:
клонировать старый репо со всеми ветками
настроить новый пульт
подтолкнуть все ссылки под refs / Heads (что, вероятно, то, что вы хотите)
источник
--tags
иrefs/heads/*:refs/heads/*
не совместимы с--mirror
. stackoverflow.com/a/26552740/1484831 работал хорошо.refs/heads/refs/heads
помощью ,git push -f --tags remoteName refs/heads/*:refs/heads/*
так что я Сменнаяgit push remoteName --mirror
push
также поддерживает--mirror
.git clone --mirror; cd repo; git push --mirror new_remote
должен сделать трюкЭто сработало для меня без нареканий .
Я должен упомянуть, что это создает зеркало вашего текущего репо, а затем подталкивает его на новое место. Следовательно, это может занять некоторое время для больших репозиториев или медленных соединений .
источник
git push --mirror origin
более-f
.Скопируйте это. Это действительно так просто. :)
На стороне клиента, просто отредактируйте .git / config в локальном репозитории клиента, чтобы указать удаленным пользователям новый URL при необходимости.
источник
Это как бы сделано по частям в некоторых других ответах.
источник
--mirror
в толчке очень важно: это должен быть правильный ответgit init --bare
Я просто публикую то, что сказали другие, в простом для следования списке инструкций.
Переместите репозиторий: просто войдите на новый сервер,
cd
в родительский каталог, где вы сейчас хотите хранить репозиторий, и используйтеrsync
для копирования со старого сервера:Сделайте так, чтобы клиенты указывали на новый репозиторий: теперь на каждом клиенте, использующем репозиторий, просто удалите указатель на старый источник и добавьте один к новому.
источник
git remote set-url origin user@new.server.com:path/to/repository.git
Посмотрите на этот рецепт на GitHub: https://help.github.com/articles/importing-an-external-git-repository
Я попробовал несколько методов, прежде чем обнаружить
git push --mirror
.Работал как шарм!
источник
git clone --mirror ...
,git remote add ...
,git push --mirror ...
Я следовал инструкциям на BitBucket, чтобы перенести репо со всеми его ветками туда. Здесь идут шаги с объяснениями, следующими за
#
символом:Работал хорошо для меня.
источник
Пожалуйста, следуйте инструкциям:
источник
Это вариант этого ответа , который в настоящее время предлагает gitlab «перенести» репозиторий git с одного сервера на другой.
Давайте предположим, что ваш старый проект называется
existing_repo
, хранится вexisting_repo
папке.Создайте репо на вашем новом сервере. Предположим, что URL этого нового проекта
git@newserver:newproject.git
Откройте интерфейс командной строки и введите следующее:
Преимущества этого подхода в том, что вы не удаляете ветку, которая соответствует вашему старому серверу.
источник
Вы можете использовать следующую команду:
Пример с http://gitref.org/remotes/
источник
Должно быть так просто, как:
Таким образом, вы сохраняете имя
origin
для своего нового репо, а затем подталкиваете к новому репо старое, как подробно описано в других ответах. Предположим, что вы работаете в одиночку, и у вас есть локальное репо, которое вы хотите отразить со всеми вашими затратами, вы также можете (из своего локального репо)но посмотрите, достаточно ли "git push --mirror" для резервного копирования моего хранилища? (во всех не использовать,
--mirror
но один раз).источник
следуйте этим инструкциям, если вы хотите сохранить все коммиты и ветки от старого до нового репо
источник
Вы можете использовать git-copy, чтобы дублировать репо со всеми историями.
источник
Если вы хотите перейти от одного источника к другому, а также сохранить резервную копию вашего текущего источника на локальном компьютере, вы можете использовать эти шаги:
Сейчас в папке делаю
Приведенная выше команда дает текущий URL удаленного источника, что полезно для возврата источника на последнем шаге
Приведенная выше команда устанавливает удаленное начало в новое местоположение
Приведенная выше команда переводит текущую активную локальную ветвь в удаленную с разработкой branchname. Конечно, это сохраняет всю историю, так как с git вся история также выдвигается.
Приведенная выше команда устанавливает удаленный источник на ваш текущий источник: вам это нужно, потому что вы находитесь в существующей папке и, возможно, не хотите смешивать имя текущей локальной папки с новой папкой, которую вы собираетесь создать для клонирования репозитория. Вы только что подтолкнули к.
Надеюсь это поможет,
источник
Если вы хотите перенести репозиторий #git с одного сервера на новый, вы можете сделать это следующим образом:
Все удаленные ветви и теги из старого репозитория будут скопированы в новый репозиторий.
Запуск этой команды в одиночку:
будет только копировать основную ветку (только отслеживание ветвей) в новый репозиторий.
источник