origin
还是其他)来推送到多个上游仓库,这是可以实现的。请参阅Git - 向两个远程仓库推送代码。
$ 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
需要注意的是,可以同时将代码提交到多个git仓库服务器。
使用以下命令向origin远程仓库添加另一个URL即可实现此目的。
git remote set-url --add origin ssh://git@bitbucket.org/user/myproject.git
./git/config
文件,并移除 [remote "origin"] 部分下的 url 文件。 - Pini Cheynigit remote set-url --delete origin ssh://git@bitbucket.org/user/myproject.git
翻译:这条命令可以删除 Git 中某个仓库的远程地址,具体操作为:将 origin
这个名字的远程仓库地址设为空,即可删除它。要执行此操作,请在终端中输入以上命令,并将 ssh://git@bitbucket.org/user/myproject.git
替换为您想要删除的远程仓库地址。 - Afrig Aminuddin这是一个带有多个远程仓库(GitHub和GitLab)的示例项目:
为GitHub添加远程仓库
$ git remote add github https://github.com/Company_Name/repository_name.git
为GitLab添加远程仓库
$ git remote add gitlab https://gitlab.com/Company_Name/repository_name.git
现在您的项目中有多个远程仓库,请使用 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)
如何将代码推送到多个仓库?
$ git push github && git push gitlab
$ git push
命令会把代码推送到所有远程库吗? - Water Cooler v2git 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
现在你有2个起源。
--push
选项,这个答案比其他答案更加有帮助/精炼。 - Dmitri Zaitsev一个本地库可以链接到多个远程库。但其中只能有一个链接称为 origin
,其余的链接需要拥有不同的名称。
因此,为了正确回答这个问题,我们需要先了解什么是 origin。
让我们用一个例子来解释。
假设你有一个名为 amazing-project
的远程库,然后你将该远程库克隆到你的本地机器上,这样你就有了一个本地库。那么你会得到如下图所示的内容:
因为你克隆了该库,所以远程库和本地库是链接在一起的。
如果你运行命令 git remote -v
,它将列出所有已链接到你的本地库的远程库。在那里,你将看到为了从远程库推送或获取代码,你将使用短名称'origin'。
现在可能有点令人困惑,因为在GitHub(或远程服务器)中,项目被称为“amazing-project”。那么为什么似乎有两个名称指向远程存储库呢?
实际上,我们的存储库有两个名称。第一个名称是它在GitHub或远程服务器上的名称。可以将其视为项目名称,在本例中为“amazing-project”。
另一个名称是它在我们本地存储库中的短名称,与存储库的URL相关联。每当我们想要从远程存储库中推送或获取代码时,都会使用这个短名称。这种短名称就像该URL的别名,它使我们无需使用整个长URL就能够推送或获取代码。在上面的示例中,它被称为origin
。
那么,什么是origin
?
基本上,当您克隆远程存储库时,origin是Git用于远程存储库的默认短名称。因此,它只是一个默认值。
在许多情况下,您的本地存储库将链接到多个远程存储库,每个存储库都有不同的短名称。
那么最后一个问题,为什么我们不直接使用相同的名称呢?
我将用另一个例子来回答这个问题。假设我们有一个朋友分叉了我们的远程代码库,以便他们可以帮助我们完成项目。并且让我们假设我们想要能够从他们的远程代码库获取代码。我们可以使用命令git remote add <shortname> <url>
,以将链接添加到我们本地代码库中的他们的远程代码库。
在上面的图像中,您可以看到我使用了短名称friend
来引用我的朋友的远程代码库。您还可以看到两个远程代码库都具有相同的项目名称amazing-project
,这给了我们一个理由,为什么远程服务器中的远程代码库名称和本地代码库中的短名称不应该相同!
cd existing_repo
重命名您当前的远程库(可选)
git remote rename origin old-origin
添加新的远程仓库(这里使用了origin)
git remote add origin https://github.com/repository_name.git
origin
远程仓库。git push -u origin --all
git push -u origin --tags
可以使用 GitHub 或 GitLab,而不是 origin。
要使用 GitHub,请使用 github 代替 origin。
git remote add github https://github.com/repository_name.git
git push github branchname
git remote add gitlab https://github.com/repository_name.git
git push gitlab branchname
您可以通过使用不同的名称(如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 rename <old> <new>
可以进行重命名:http://linux.die.net/man/1/git-remote。但你也可以将Github仓库命名为不同的名称... - Felix Klingorigin
和upstream
(您可以随意命名)。 - Srishti Gupta