Git: 使用两个来自不同远程的同名分支
Git: Use two branches with same name from different remotes
我使用的存储库既存在于 github 上,也存在于内部 gitlab 上。
我设置了两个遥控器:origin
(github) 和 gitlab
.
如何轻松地与两个遥控器的分支 master
交互?
我尝试过的:
git checkout --track gitlab/master
-> 错误:A branch named 'master' already exists.
git checkout -b master-gitlab --track gitlab/master
-> 成功了,我现在有一个本地分支 master-gitlab
并且控制台输出告诉我:master-gitlab set up to track remote branch master from gitlab.
-> 完美,这就是我想要的!
git push gitlab master-gitlab
-> 这会在远程 gitlab
上创建一个 新的远程分支 master-gitlab
,这 不是我想要的want与上次命令的输出不一致
- 我现在可以执行
git push gitlab master-gitlab:master
,将 master-gitlab
推送到远程 gitlab
的 master
。但是我总是忘记怎么做,而且不是很直观。
是否有更简单的方法来跟踪不同遥控器的 master
分支并推送到它?
这是一个 git-bug,它首先 (3) 告诉我跟踪 master
然后在推送时创建一个新分支?
从 git 正在执行文档所说的操作的意义上说,这不是错误。在这种情况下,它也可能不是最直观的结果,但是有多少种不同的方法可以将远程分支与本地引用相关联,我真的不认为在任何情况下都有一种行为对每个人都是直观的。
一般情况下,推送配置与拉取配置是分开设置的。 (您可以查看 git push
文档,了解当您未在命令行上指定所有内容时,它如何尝试找出将内容推送到哪里的概要。https://git-scm.com/docs/git-push)
也就是说,默认 推送配置会尝试使用拉取配置如果 您正在推送到默认远程。您可以将 push
配置为始终默认使用
的上游配置
git config push.default upstream
然后你可以使用
推送 master-gitlab
git push
如果已签出,并且
git push gitlab master-gitlab
无论如何。当然,由于这会更改默认设置,它可能会影响您与 gitlab 的其他交互,因此我鼓励您查看文档并确保您了解行为上的差异以决定是否值得。
我使用的存储库既存在于 github 上,也存在于内部 gitlab 上。
我设置了两个遥控器:origin
(github) 和 gitlab
.
如何轻松地与两个遥控器的分支 master
交互?
我尝试过的:
git checkout --track gitlab/master
-> 错误:A branch named 'master' already exists.
git checkout -b master-gitlab --track gitlab/master
-> 成功了,我现在有一个本地分支master-gitlab
并且控制台输出告诉我:master-gitlab set up to track remote branch master from gitlab.
-> 完美,这就是我想要的!git push gitlab master-gitlab
-> 这会在远程gitlab
上创建一个 新的远程分支master-gitlab
,这 不是我想要的want与上次命令的输出不一致- 我现在可以执行
git push gitlab master-gitlab:master
,将master-gitlab
推送到远程gitlab
的master
。但是我总是忘记怎么做,而且不是很直观。
是否有更简单的方法来跟踪不同遥控器的 master
分支并推送到它?
这是一个 git-bug,它首先 (3) 告诉我跟踪 master
然后在推送时创建一个新分支?
从 git 正在执行文档所说的操作的意义上说,这不是错误。在这种情况下,它也可能不是最直观的结果,但是有多少种不同的方法可以将远程分支与本地引用相关联,我真的不认为在任何情况下都有一种行为对每个人都是直观的。
一般情况下,推送配置与拉取配置是分开设置的。 (您可以查看 git push
文档,了解当您未在命令行上指定所有内容时,它如何尝试找出将内容推送到哪里的概要。https://git-scm.com/docs/git-push)
也就是说,默认 推送配置会尝试使用拉取配置如果 您正在推送到默认远程。您可以将 push
配置为始终默认使用
git config push.default upstream
然后你可以使用
推送master-gitlab
git push
如果已签出,并且
git push gitlab master-gitlab
无论如何。当然,由于这会更改默认设置,它可能会影响您与 gitlab 的其他交互,因此我鼓励您查看文档并确保您了解行为上的差异以决定是否值得。