是否可以将分支推送到两个遥控器,每个遥控器具有不同的分支名称?

时间:2018-06-07 21:12:57

标签: git

我有两个存储库(两个遥控器)。

我有一个分支function getElementByXpath(path) { return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } getElementByXpath(`//*[@id="#LINK1$1"]`) // >> Returns single node <a id=​"#LINK1$1">​Test​</a>​ ,我将其推送到分支机构staging上的远程a和分支机构主机上的远程staging

基本上是这样的:

b

是否可以使用git配置进行配置?所以我需要一个staging -> a/master staging -> b/staging

作为替代方案,我可以这样做:

git push

2 个答案:

答案 0 :(得分:1)

不,您无法为分支配置2个遥控器,也无法配置push.default以推送到不同名称的分支。您需要运行以下命令:

git push a staging:master
git push b staging:staging

最后一个可以缩写为

git push b staging

您可以使用命令

为分支配置上游远程
git push -u b staging

现在只有git pushstaging推送到远程b分支staging,但这就是全部。第一个命令(git push a staging:master)不能缩短或自动化。

答案 1 :(得分:1)

从技术上来说,不是文字单git push,但您可以使用本地(仅限项目,又名--globalgit alias有效地实现所需的行为。

编辑项目目录中的文件.git/config。最好直接编辑文件,而不是从终端运行git config ...,以避免引用/转义问题。将其添加到底部:

[alias]
  pushall = "!git push a staging:master; git push b staging"

pushall可以是您想要的任何内容,只要它不是默认的git命令。)

!表示从shell运行它(比如将其键入终端)。此命令说“将本地登台分支推送到远程a上的主站,并在远程b上推送本地登台分支暂存,

为了测试,我们有两个带有主分支和分段分支的遥控器:

I] sean at goz in ~/d/stack (staging|✔)
> git remote -v
a       git@github.com:sh78/stack.git (fetch)
a       git@github.com:sh78/stack.git (push)
b       git@bitbucket.org:musophob/stack.git (fetch)
b       git@bitbucket.org:musophob/stack.git (push)

现在我们进行一些更改并提交:

[I] sean at goz in ~/d/stack (staging|✔)
> touch afile
[I] sean at goz in ~/d/stack (staging|…1)
 (0) git add afile
[I] sean at goz in ~/d/stack (staging|●1)
> git commit -m "test"
[staging 64e5ee6] test
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 afile

现在我们使用我们的本地别名:

[I] sean at goz in ~/d/stack (staging↑1|✔)
> git pushall
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 269 bytes | 89.00 KiB/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To github.com:sh78/stack.git
  bb8587b..64e5ee6  staging -> master
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 269 bytes | 269.00 KiB/s, done.
Total 2 (delta 0), reused 0 (delta 0)
remote:
remote: Create pull request for staging:
remote:   https://bitbucket.org/musophob/stack/pull-requests/new?source=staging&t=1
remote:
To bitbucket.org:musophob/stack.git
  1e5a81a..64e5ee6  staging -> staging

结果是我们使用afile的提交被推送到远程a的主分支(不是暂存)并同时推送到远程b的分段分支(不是主分区) 。我使用GitHub(™Microsoft Corporation)和BitBucket通过实时遥控器确认了这一点。