Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何使用一个遥控器推送到一个url并从另一个url拉取?_Git_Github - Fatal编程技术网

Git 如何使用一个遥控器推送到一个url并从另一个url拉取?

Git 如何使用一个遥控器推送到一个url并从另一个url拉取?,git,github,Git,Github,我已经创建了一个克隆的。如果我运行以下命令,我会看到我的本地repo被配置为使用我的克隆来获取/拉取,正如预期的那样 $ git remote show origin * remote origin Fetch URL: https://github.com/domurtag/airbrake-grails.git Push URL: https://github.com/domurtag/airbrake-grails.git 我希望我的本地repo从主repo(我从中克隆的那一个

我已经创建了一个克隆的。如果我运行以下命令,我会看到我的本地repo被配置为使用我的克隆来获取/拉取,正如预期的那样

$ git remote show origin
* remote origin
  Fetch URL: https://github.com/domurtag/airbrake-grails.git
  Push  URL: https://github.com/domurtag/airbrake-grails.git
我希望我的本地repo从主repo(我从中克隆的那一个)获取,并推送到我的克隆。我做的第一件事是将主回购添加为远程:

$ git remote add cavneb https://github.com/cavneb/airbrake-grails.git
如果我再次运行
git remote show origin
我会看到相同的输出,因此显然我需要做一些其他事情来指示应该使用
cavneb
repo进行抓取,但我不确定这是什么

如果相关,我已经在下面显示了我的
.git/config
的内容:

[core]
    repositoryformatversion = 0
    filemode = true
    logallrefupdates = true
[remote "origin"]
    url = https://github.com/domurtag/airbrake-grails.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "cavneb"]
    url = https://github.com/cavneb/airbrake-grails.git
    fetch = +refs/heads/*:refs/remotes/cavneb/*
直截了当的回答 您要查找的命令是:

git remote set-url origin https://github.com/cavneb/airbrake-grails.git
git remote set-url origin --push https://github.com/domurtag/airbrake-grails.git
然而 但我强烈建议不要那样做

尽管我不能完全确定,但对于上述行为,
git
会/可能会感到困惑

当像上面那样做时,
git
假设这是相同的回购。因此,当您推送时,下一次获取的结果应该会改变——显然不会

最佳做法 处理您的情况的正确方法是将
master
repo添加为一个额外的遥控器。同样,作为另一种最佳实践,我将这种回购称为上游回购

当你想从额外的回购中撤出时(
上游
):


尝试将设置的url与pull和push一起使用:

git remote set-url --pull origin https://github.com/domurtag/airbrake-grails.git
git remote set-url --push origin https://github.com/cavneb/airbrake-grails.git
介绍有助于三角工作流的设置

remote.pushdefault
:将更改推送到的远程设备。通过设置
branch..pushremote
,可以覆盖特定分支


无论使用哪种设置,
git push
(没有其他参数)都将推送到您首选的远程位置,而不是分支的上游远程位置。有关详细信息,请参见。

除非我弄错了,否则对于
git远程设置url

我使用
upstream
origin
来支持git本身,所以我从上游提取,同时在Github上从我的个人
origin
推/拉。查看git邮件列表,了解最近关于三角形工作流的讨论。?这和我解释的不完全一样吗?可能是这两个方面的混合让我写了这篇评论。也许,如果答案是从你的“正确的方式…”段落开始的,并且只有在给出了正在寻找的命令和“不要那样做”的情绪之后。我想这取决于写作风格。对不起,我冒犯了你。我没有冒犯你——我只是感到困惑:)
git remote set-url --pull origin https://github.com/domurtag/airbrake-grails.git
git remote set-url --push origin https://github.com/cavneb/airbrake-grails.git