一个项目可以有两个(或更多)Git中的“origins”?

我想把一个项目推到github和Heroku服务器。

具体来说,在添加github存储库时出现这个错误:

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

您可以拥有任意多的遥控器,但只能拥有一个名为“origin”的遥控器。名为“origin”的远程服务器在任何方面都不特殊,除了它是Git在克隆现有存储库时创建的默认远程服务器。您可以配置第二个远程,从该远程上推/拉,并设置一些分支从该远程而不是原点跟踪分支。

尝试添加一个名为“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

值得注意的是,可以同时将origin推到多个git存储库服务器。

可以通过使用以下命令向源远程添加另一个URL来实现这一点。

git remote set-url --add origin ssh://git@bitbucket.org/user/myproject.git

下面是一个带有多个遥控器的示例项目,GitHub和GitLab:

Add remote repo for GitHub $ git remote add github https://github.com/Company_Name/repository_name.git Add remote repo for GitLab $ git remote add gitlab https://gitlab.com/Company_Name/repository_name.git Now you have multiple remotes in the project. Double check with 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) How do you push to multiple repositories? $ git push github && git push gitlab


您可以通过指定不同的名称而不是原始名称向存储库添加另一个远程帐户。您可以使用名称,如origin2。 因此您的git命令可以修改为

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

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

对于推送使用:

git push -u origin2 master

git remote set-url --add --push origin git@github.com:user/my-project.git
git remote set-url --add --push origin git@bitbucket.org:user/my-project.git

现在你有两个原点。


你可以使用 而不是原始使用GitHub或GitLab

对于github在地方的起源使用github

git remote add github https://github.com/repository_name.git
git push github branchname

对于gitlab,请使用gitlab

git remote add gitlab https://github.com/repository_name.git
git push gitlab branchname

您可以按照以下步骤将更改从现有存储库推送到新远程中。

cd existing_repo

重命名当前远程(可选)

git remote rename origin old-origin

添加新的远程(此处使用的原点)

git remote add origin https://github.com/repository_name.git

现在可以将代码推到新的源远程

git push -u origin --all
git push -u origin --tags