Может ли проект иметь несколько истоков?

Может ли проект иметь два (или более) "источника" в Git?

Я хотел бы нажать один проект на github и Heroku сервер.

В частности, эта ошибка появляется при добавлении репозитория github:

$ git remote add origin https://github.com/Company_Name/repository_name.git
fatal: remote origin already exists.

Ответ 1

У вас может быть столько пультов, сколько хотите, но у вас может быть только один пульт с именем "origin". Пульт, называемый "origin", не является каким-либо особым, за исключением того, что он является удаленным по умолчанию удаленным, созданным Git при клонировании существующего репозитория. Вы можете настроить второй пульт, нажать на /pull с этого пульта и настроить некоторые ветки для отслеживания ветвей с этого пульта вместо источника.

Вместо этого попробуйте добавить удаленный вызов "github":

$ git remote add github https://github.com/Company_Name/repository_name.git

# push master to github
$ git push github master

# Push my-branch to github and set it to track github/my-branch
$ git push -u github my-branch

# Make some existing branch track github instead of origin
$ git branch --set-upstream other-branch github/other-branch

Ответ 2

В качестве побочного примечания для тех, кто споткнется на этот вопрос позже, возможно, что исходное нажатие на более чем один сервер хранилища git за раз.

Это можно сделать, используя следующую команду для добавления другого URL-адреса в пульт дистанционного управления.

git remote set-url --add origin ssh://[email protected]/user/myproject.git

Ответ 3

Вот пример проекта с несколькими пультами, GitHub & GitLab:

  1. Добавить удаленное репо для GitHub

    $ git remote add github https://github.com/Company_Name/repository_name.git
    
  2. Добавить удаленное репо для GitLab

    $ git remote add gitlab https://gitlab.com/Company_Name/repository_name.git
    
  3. Теперь у вас есть несколько пультов в проекте. Двойная проверка с помощью git remote -v

    $ git remote -v
    github https://github.com/Company_Name/repository_name.git (fetch)
    github https://github.com/Company_Name/repository_name.git (push)
    gitlab https://gitlab.com/Company_Name/repository_name.git (fetch)
    gitlab https://gitlab.com/Company_Name/repository_name.git (push)
    
  4. Как вы продвигаетесь к нескольким репозиториям?

    $ git push github && git push gitlab
    

Ответ 4

Вы можете добавить другую удаленную учетную запись в свой репозиторий, указав другое имя вместо источника. Вы можете использовать имя, например origin2. так что ваша команда git может быть изменена как

git remote add origin2 https://github.com/Company_Name/repository_name.git

Ответ 5

git remote add origin2 https://github.com/Company_Name/repository_name.git

и для принудительного использования:

git push -u origin2 master