使用两个或更多的Git仓库?没问题!在本教程中,您首先将学习如何设置多个Git远程仓库。接下来,您还将学习如何通过一条命令将代码“推送”到多个Git仓库。
作为一名程序员,Git的出现对我来说是最棒的事情之一!如果您不知道Git是什么,在继续学习之前,您或许应该先阅读一段相关介绍。Git能让您将本地计算机上的代码与远程仓库中的代码进行同步,这些远程仓库是与其他开发人员(通常是团队成员)共享的。在本教程中,我们将学习如何配置一个或多个Git远程仓库,并通过一条命令将代码推送到这些仓库。
两分钟速成版
git remote add all REMOTE-URL-1。git remote set-url --add --push all REMOTE-URL-1。git remote set-url --add --push all REMOTE-URL-2。git push all BRANCH将一个分支推送到所有远程仓库——将BRANCH替换为实际的分支名称。git fetch --all从多个远程仓库获取更新。先决条件
git init、git pull、git commit和git push等命令。添加多个远程仓库
当您执行git init时,会初始化一个本地Git仓库。一般来说,其目的是将这个本地仓库与一个远程Git仓库进行同步。为了能够将代码与远程仓库进行同步,您需要指定远程仓库的位置。
第一步是向您的项目中添加远程仓库。
# 添加Git远程仓库的语法
git remote add REMOTE-ID REMOTE-URL按照惯例,最初的/主要的远程仓库被称为“origin”。以下是一个实际示例:
# 添加远程仓库1:GitHub
git remote add origin git@github.com:jigarius/toggl2redmine.git
# 添加远程仓库2:BitBucket
git remote add upstream git@bitbucket.org:jigarius/toggl2redmine.git在上述示例中,我们添加了一个名为Toggl 2 Redmine的项目在GitHub上的远程仓库。使用上述命令可以添加一个或多个远程Git仓库——确保每个仓库都有其唯一的ID,比如上述示例中的“origin”和“upstream”。
尽管您可以添加多个远程仓库,但通常情况下,您项目的每个分支都可以配置为跟踪单个远程分支。您可以按照以下方式设置一个分支来跟踪远程分支:
# 切换本地分支
git checkout BRANCH
# 配置本地分支以跟踪远程分支
git branch -u origin/BRANCH在这里,BRANCH是远程分支的名称,通常与您的本地分支名称相同。
如果您想更改已经添加的远程仓库所关联的URL,可以使用以下命令:
# 语法为:git remote set-url REMOTE-ID REMOTE-URL
git remote set-url upstream git@foobar.com:jigarius/toggl2redmine.git列出所有远程仓库
要查看所有远程仓库的列表,只需使用以下命令:
$git remote -v
origin git@github.com:jigarius/toggl2redmine.git (fetch)
origin git@github.com:jigarius/toggl2redmine.git (push)
upstream git@bitbucket.org:jigarius/toggl2redmine.git (fetch)
upstream git@bitbucket.org:jigarius/toggl2redmine.git (push)删除一个远程仓库
如果您添加了一个不再需要的远程仓库,可以按照以下方式删除它:
# 语法为:git remote remove REMOTE-ID
git remote remove upstream推送到多个远程仓库
现在您已经有了一个主要的远程仓库以及其他远程仓库,是时候配置推送操作了。目标是通过一条git push命令将代码推送到多个Git远程仓库。
要做到这一点,选择一个将指代所有远程仓库的远程引用ID。我通常将其命名为“all”,但也有一些开发者更喜欢使用“origin”。思路是将所有远程仓库的URL作为“推送URL”添加到这个远程引用中。以下是具体操作:
# 使用主要仓库的URL创建一个名为“all”的新远程引用
git remote add all git@github.com:jigarius/toggl2redmine.git
# 将该远程引用重新注册为推送URL
git remote set-url --add --push all git@github.com:jigarius/toggl2redmine.git
# 向一个远程引用添加一个推送URL。这意味着“git push”操作也会将代码推送到这个Git URL
git remote set-url --add --push all git@bitbucket.org:jigarius/toggl2redmine.git如果您不想创建一个名为“all”的额外远程引用,可以跳过第一条命令,并在后续命令中使用“origin”代替“all”。
现在,您可以通过一条命令将代码推送到所有远程仓库了!
# 将BRANCH替换为您想要推送的分支名称
git push all BRANCH从多个远程仓库拉取
无法从多个仓库执行git pull操作。然而,您可以使用以下命令从多个仓库执行git fetch操作:
git fetch --all这将从所有远程仓库获取信息。您可以使用以下命令切换到特定远程仓库上某个分支的最新版本:
# 检出您想要操作的分支
git checkout BRANCH
# 将分支重置为与特定远程仓库上的状态匹配
git reset --hard REMOTE-ID/BRANCH结论
在多个Git仓库之间同步代码很容易,尤其是推送到多个远程仓库的操作。当您在维护同一个仓库的镜像/副本时,这会很有帮助。您所需要做的就是在一个远程引用上设置多个推送URL,然后像往常一样对该远程引用执行git push操作。
后续步骤
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。