Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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:在一个命令中推动两个回购_Git - Fatal编程技术网

Git:在一个命令中推动两个回购

Git:在一个命令中推动两个回购,git,Git,我想在同一行中执行git push origin和git push my_other_remote。可能吗?您可以通过为源站添加额外的推送URL来获得相同的效果。例如,如果现有远程设备的URL如下所示: $ git remote -v origin me@original:something.git (fetch) origin me@original:something.git (push) my_other_remote git://somewhere/something.git (fe

我想在同一行中执行
git push origin
git push my_other_remote
。可能吗?

您可以通过为源站添加额外的推送URL来获得相同的效果。例如,如果现有远程设备的URL如下所示:

$ git remote -v
origin  me@original:something.git (fetch)
origin  me@original:something.git (push)
my_other_remote git://somewhere/something.git (fetch)
my_other_remote git://somewhere/something.git (push)
你可以做:

 git remote set-url --add --push origin git://somewhere/something.git
然后,
git push origin
将推送到两个存储库。不过,为了避免混淆,您可能需要为此设置一个名为
both
的新遥控器。例如:

 git remote add both me@original:something.git
 git remote set-url --add --push both me@original:something.git
 git remote set-url --add --push both git://somewhere/something.git
。。。然后:

 git push both

。。。将尝试推送到这两个存储库。

您可以将以下内容放入
.git/config
文件中:

[remote "both"]
    url = url/to/first/remote
    url = url/to/other/remote
[remotes]
    both = origin, other
现在,您可以使用git-push-tware推送两个URL

如果您还想从它们那里获取(对同步有用),您可以在
.git/config
文件中添加以下行:

[remote "both"]
    url = url/to/first/remote
    url = url/to/other/remote
[remotes]
    both = origin, other

现在,您还可以运行git fetch both

这只是对已经提供的优秀答案的一个小小补充-如果您不想费心添加“both”,只想让所有操作自动推送到两个repo,只需在git配置中的origin下添加第二个repo作为另一个url

[remote "origin"]
    url = someUrl.git
    url = secondUrl.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

现在“GitPush”同时使用这两种方法

我不认为你可以使用标准命令来实现这一点,但你可以编写一个
git multipush
或其他什么东西并使用它。这是否也会更新
remote/origin
remote/myŭother_remote
跟踪分支?@Paŭlo eberman:my(非常简短)测试表明,
refs/remotes/origin/master
refs/remotes/my_other_remote/master
的URL都将被更新,在这种情况下,这两个URL都将作为推送URL添加到
origin
,并且您执行
git推送origin
。这看起来可能与我正在寻找的内容类似,但我仍然有点困惑。。。如果我想将我的应用提交给Heroku和BitBucket,如何继续?首先,我必须创建回购并提交给Heroku,然后使用相同的方法在BitBucket上创建回购,或者正确的方法是什么?您提供的解决方案与Mark的解决方案基本相同(除非您通过手动编辑),还是有其他区别?