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

  1. Создайте локальный репозиторий в каталоге temp-dir, используя:

    Git Clone Temp-Dir

  2. Перейдите в каталог temp-dir.

  3. Чтобы увидеть список различных ветвей в ORI, сделайте:

    git branch -a
    
  4. Оформите все ветки, которые вы хотите скопировать из ORI в NEW, используя:

    git checkout branch-name
    
  5. Теперь извлеките все теги из ORI, используя:

    git fetch --tags
    
  6. Перед выполнением следующего шага обязательно проверьте локальные теги и ветки с помощью следующих команд:

    git tag
    
    
    git branch -a
    
  7. Теперь очистите ссылку на репозиторий ORI с помощью следующей команды:

    git remote rm origin
    
  8. Теперь свяжите ваш локальный репозиторий с новым созданным репозиторием, используя следующую команду:

    git remote add origin <url to NEW repo>
    
  9. Теперь добавьте все свои ветки и теги с помощью этих команд:

    git push origin --all
    
    
    git push --tags
    
  10. Теперь у вас есть полная копия вашего репозитория ORI.

Ответ 6

Я нашел решение, используя набор -u rl, который является кратким и довольно простым для понимания:

  1. создать новый репо на Github
  2. cd в существующий репозиторий на вашем локальном компьютере (если вы еще не клонировали его, сделайте это сначала)
  3. git remote set-url origin https://github.com/user/example.git
  4. 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