16 ответов:
чтобы добавить новое местоположение РЕПО,
git remote add new_repo_name new_repo_urlзатем переместите содержимое в новое место
git push new_repo_name masterнаконец удалить старый
git remote rm originпосле этого вы можете сделать то, что сказал bdonlan и отредактировать.git / config файл для изменения new_repo_name в origin. Если вы не удалите origin (исходный удаленный репозиторий), вы можете просто просто нажать изменения в новое РЕПО с помощью
git push new_repo_name master
Если вы хотите перенести все ветки и теги, вы должны использовать следующие команды:
git clone --mirror [oldUrl]клонировать старое РЕПО со всеми ветками
cd the_repo git remote add remoteName newRepoUrlдля установки нового пульта дистанционного управления
git push -f --tags remoteName refs/heads/*:refs/heads/*чтобы подтолкнуть все ссылки под refs / heads (что, вероятно, то, что вы хотите)
это сработало для меня безупречно.
git clone --mirror <URL to my OLD repo location> cd <New directory where your OLD repo was cloned> git remote set-url origin <URL to my NEW repo location> git push -f originЯ должен упомянуть, что это создает зеркало вашего текущего РЕПО, а затем толкает его в новое место. поэтому это может занять некоторое время для больших репозиториев или медленных соединений.
скопировать его. Это действительно так просто. :)
на стороне клиента, просто редактировать .git / config в локальном репозитории клиента, чтобы указать ваши удаленные устройства на новый URL-адрес по мере необходимости.
Я просто перепечатываю то, что другие сказали, в простом списке инструкций.
переместить в хранилище: просто войдите на новый сервер,
cdв родительский каталог, где теперь вы хотите хранить репозиторий, и использоватьrsyncскопировать со старого сервера:new.server> rsync -a -v -e ssh [email protected]:path/to/repository.git .чтобы клиенты указывали на новый репозиторий: теперь на каждом клиенте, использующем репозиторий, просто удалите указатель на старое происхождение, и добавить один к новому.
client> git remote rm origin client> git remote add origin [email protected]:path/to/repository.git
Это сделано в некоторых других ответов.
git clone --mirror git@oldserver:oldproject.git cd oldproject.git git remote add new git@newserver:newproject.git git push --mirror new
взгляните на этот рецепт на GitHub: https://help.github.com/articles/importing-an-external-git-repository
я попробовал несколько методов, прежде чем обнаружить
git push --mirror.работал как шарм!
я следовал инструкциям на BitBucket, чтобы переместить РЕПО со всеми его ветвями там. Здесь приходят шаги с объяснениями после
#символ:cd path/to/local/repo git remote remove origin # to get rid of the old setting, this was not in the BitBucket instructions git remote add origin ssh://[email protected]/<username>/<newrepo> # modify URL as needed git push -u origin --all # pushes _ALL_ branches in one go git push -u origin --tags # pushes _ALL_ tags in one goработал хорошо для меня.
Вы можете использовать следующую команду :
git remote set-url --push origin new_repo_urlпример из http://gitref.org/remotes/
$ git remote -v github [email protected]:schacon/hw.git (fetch) github [email protected]:schacon/hw.git (push) origin git://github.com/github/git-reference.git (fetch) origin git://github.com/github/git-reference.git (push) $ git remote set-url --push origin git://github.com/pjhyett/hw.git $ git remote -v github [email protected]:schacon/hw.git (fetch) github [email protected]:schacon/hw.git (push) origin git://github.com/github/git-reference.git (fetch) origin git://github.com/pjhyett/hw.git (push)
пожалуйста, выполните следующие действия:
- git remote add new-origin
- git push --all new-origin
- git push -- теги new-origin
- git remote RM origin
- git remote переименовать new-origin origin
должно быть так:
git remote set-url origin git://new.url.hereтаким образом, вы сохраните имя
originдля вашего нового РЕПО-затем нажмите на новое РЕПО старое, как описано в других ответах. Предположим, вы работаете в одиночку, и у вас есть локальное РЕПО, которое вы хотите отразить со всем своим cruft в нем, вы также можете (изнутри вашего локального РЕПО)git push origin --mirror # origin points to your new repoно вижу достаточно ли "git push --mirror" для резервного копирования моего репозитория? (во всех не использовать
--mirrorно один раз).
следуйте этим инструкциям, если вы хотите сохранить все коммиты и ветви от старого до Нового РЕПО
git clone --bare <old-repo-url> cd <old-repo-directory> git push --mirror <new-repo-url>
вся информация (Оргин, хобот, ЕТК.) о репозитории хранятся в папке с именем '.git', где вы инициализируете репозиторий. Итак, вам нужно скопировать содержимое на новый сервер, используя инструкции здесь
можно использовать git-copy для дублирования РЕПО со всеми историями.
git copy http://a.com/old.git http://a.com/new.git
Если вы хотите перенести репозиторий #Git с одного сервера на Новый, вы можете сделать это так:
git clone OLD_REPOSITORY_PATH cd OLD_REPOSITORY_DIR git remote add NEW_REPOSITORY_ALIAS NEW_REPOSITORY_PATH #check out all remote branches for remote in `git branch -r | grep -v master `; do git checkout --track $remote ; done git push --mirror NEW_REPOSITORY_PATH git push NEW_REPOSITORY_ALIAS --tagsвсе удаленные ветви и теги из старого репозитория будут скопированы в новый репозиторий.
выполнение этой команды в одиночку:
git push NEW_REPOSITORY_ALIASбудет копировать только главную ветвь (только ветви отслеживания) в новый репозиторий.
если вы хотите перейти от одного источника к другому, а также сохранить резервную копию вашего текущего источника на локальном компьютере, вы можете использовать следующие шаги:
- сначала локально перейдите в папку (git), которую вы хотите переместить
- создать новый репозиторий онлайн Этот шаг создает репозиторий, где мы можем нажать код
теперь в папке do
git remote get-url originприведенная выше команда дает текущий url удаленного источника, полезный для установки источника вернемся к последнему шагу
git remote set-url origin [email protected]:folder/newrepo.gitприведенная выше команда устанавливает удаленный источник в новое местоположение
git push --set-upstream origin developэта команда сохраняет текущий активный местного отделения в отдаленные с branchname развиваться. Конечно, он сохраняет всю историю, так как с git вся история также нажата.
git remote set-url origin <original old origin>приведенная выше команда возвращает удаленный источник к текущему источнику: вы хотите этого, потому что вы находитесь в существующей папке, и вы, вероятно, не хотите перепутать ваше текущее имя локальной папки с новой папкой, которую вы собираетесь создать для клонирования РЕПО, которое вы только что нажали.
надеюсь, это поможет,
Comments