做空者:有没有一种方法可以让git回购推送到远程回购列表(而不是一个单一的“来源”)中并从中提取?

长篇大论:当我在多台电脑上开发一个应用程序时,我经常会遇到这样的情况,这些电脑具有不同的连接能力——比如,一台笔记本电脑在运输途中,一台电脑“a”在某个位置,另一台电脑则“B”在另一台位置。此外,笔记本电脑可能只与“A”或“B”连接,有时两者都连接。

我希望git始终“拉”到它当前可以连接的所有计算机,这样从一台机器跳到另一台机器,继续无缝工作就更容易了。


当前回答

自git1.8(2012年10月)以来,您可以通过命令行执行此操作:

git remote set-url origin --push --add user1@repo1
git remote set-url origin --push --add user2@repo2
git remote -v

然后git push将推到user1@repo1,然后推到user2@repo2.

其他回答

自git1.8(2012年10月)以来,您可以通过命令行执行此操作:

git remote set-url origin --push --add user1@repo1
git remote set-url origin --push --add user2@repo2
git remote -v

然后git push将推到user1@repo1,然后推到user2@repo2.

您可以通过以下方式添加遥控器:

git remote add a urla
git remote add b urlb

然后,要更新所有回购,请执行以下操作:

git remote update

你需要一个脚本来循环它们。Git不提供“推送全部”。理论上可以在多个线程中进行推送,但本地方法不可用。

提取甚至更复杂,我建议线性地进行。

我认为你最好的答案是有一台机器,如果有可能的话,每个人都可以推/拉它。

添加新远程

git remote add upstream https://github.com/example-org/example-repo.git

git remote -vv

从多个位置提取

git fetch --all

推送至位置

git push -u upstream/dev

使用以下命令向全局gitconfig(/home/user/.gitconfig)添加别名。

git config --global alias.pushall '!f(){ for var in $(git remote show); do echo "pushing to $var"; git push $var; done; }; f'

一旦你提交代码,我们说

数字推送

默认情况下推送到原点。在上面的别名之后,我们可以说

git推球

并且代码将被更新到所有远程设备,包括原始远程设备。