Git нажимать существующий репо на новый и другой сервер удаленного репо?
Скажем, у меня есть репозиторий на git.fedorahosted.org, и я хочу клонировать это в мою учетную запись в github, чтобы иметь свою собственную площадку в стороне от более "официальное" репо на федеральном уровне.
Какими будут шаги для первоначального копирования?
Внутри github есть эта хорошая кнопка "fork", но я не могу использовать это по понятным причинам.
И как я буду отслеживать изменения в федеративном репо в github?
Ответы
Ответ 1
- Создайте новое репо в github.
- Клонировать репо из fedorahosted на ваш локальный компьютер.
-
git remote rename origin upstream
-
git remote add origin URL_TO_GITHUB_REPO
-
git push origin master
Теперь вы можете работать с ним так же, как и любое другое репозиционирование github. Чтобы вытащить патчи с восходящего потока, просто запустите git pull upstream master && git push origin master
.
Ответ 2
В этом вопросе есть удаленный ответ с полезной ссылкой: https://help.github.com/articles/duplicating-a-repository
Суть
0. create the new empty repository (say, on github)
1. make a bare clone of the repository in some temporary location
2. change to the temporary location
3. perform a mirror-push to the new repository
4. change to another location and delete the temporary location
Пример OP:
На вашей локальной машине
$ cd $HOME
$ git clone --bare https://git.fedorahosted.org/the/path/to/my_repo.git
$ cd my_repo.git
$ git push --mirror https://github.com/my_username/my_repo.git
$ cd ..
$ rm -rf my_repo.git
Ответ 3
Чтобы переместить существующее репо в другое, вам необходимо:
-
Сначала выполните клонирование исходного репо.
git clone https://git.fedorahosted.org/cgit/rhq/rhq.git
-
Нажмите клонированные источники в новый репозиторий:
cd rhq
git push https://github.com/user/example master:master
Вы можете изменить master:master
на ветвь source:destination
.
Если вы хотите нажать конкретную фиксацию (ветку), выполните следующие действия:
-
В исходном репо создайте и проверите новую ветку:
git checkout -b new_branch
-
Выберите и reset к точке, с которой вы хотите начать:
git log # Find the interesting hash
git reset 4b62bdc9087bf33cc01d0462bf16bbf396369c81 --hard
Альтернативно выберите фиксацию git cherry-pick
для добавления в существующую HEAD.
-
Затем нажмите на свое новое репо:
git push https://github.com/user/example new_branch:master
Если вы перезагружаетесь, используйте -f
для принудительного нажатия (не рекомендуется). Запустите git reflog
, чтобы просмотреть историю изменений.
Ответ 4
Вы действительно хотите просто нажать на свой локальный репозиторий (с его локальными ветвями и т.д.) на новый пульт, или вы действительно хотите зеркально отобразить старый пульт (со всеми его ветвями, тегами и т.д.) на новом удаленном? Если последний здесь отличный блог на Как правильно зеркалировать репозиторий git.
Я настоятельно рекомендую вам прочитать блог для некоторых очень важных деталей, но короткая версия такова:
В новом каталоге выполните следующие команды:
git clone --mirror [email protected]/upstream-repository.git
cd upstream-repository.git
git push --mirror [email protected]/new-location.git
Ответ 5
Попробуйте это Как переместить полный репозиторий Git
-
Создайте локальный репозиторий в каталоге temp-dir, используя:
Git Clone Temp-Dir
-
Перейдите в каталог temp-dir.
-
Чтобы увидеть список различных ветвей в ORI, сделайте:
git branch -a
-
Оформите все ветки, которые вы хотите скопировать из ORI в NEW, используя:
git checkout branch-name
-
Теперь извлеките все теги из ORI, используя:
git fetch --tags
-
Перед выполнением следующего шага обязательно проверьте локальные теги и ветки с помощью следующих команд:
git tag
git branch -a
-
Теперь очистите ссылку на репозиторий ORI с помощью следующей команды:
git remote rm origin
-
Теперь свяжите ваш локальный репозиторий с новым созданным репозиторием, используя следующую команду:
git remote add origin <url to NEW repo>
-
Теперь добавьте все свои ветки и теги с помощью этих команд:
git push origin --all
git push --tags
-
Теперь у вас есть полная копия вашего репозитория ORI.
Ответ 6
Я нашел решение, используя набор -u rl, который является кратким и довольно простым для понимания:
- создать новый репо на Github
-
cd
в существующий репозиторий на вашем локальном компьютере (если вы еще не клонировали его, сделайте это сначала) -
git remote set-url origin https://github.com/user/example.git
-
git push -u origin master
Ответ 7
Если у вас есть существующее хранилище Git:
cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitlab.com/newproject
git push -u origin --all
git push -u origin --tags
Ответ 8
У меня была та же проблема.
В моем случае, поскольку у меня есть оригинальный репозиторий на моей локальной машине, я сделал копию в новой папке без скрытого файла (.git, .gitignore).
Наконец, я добавил файл .gitignore в новую созданную папку.
Затем я создал и добавил новый репозиторий с локального пути (в моем случае с помощью GitHub Desktop).
Ответ 9
Просто укажите новый репо, изменив URL репозитория GIT с помощью этой команды:
git remote set-url origin [new repo URL]
Пример: git remote set-url origin [email protected]:Batman/batmanRepoName.git
Теперь подталкивание и вытягивание связаны с новым РЕПО.
Затем нажимаем нормально так:
git push -u origin master