从多个远程位置拉/推

喜你入骨 提交于 2019-12-23 13:43:50

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

简短的说:有没有办法将git repo推送到远程仓库(而不是单个“来源”)列表并从中提取?

冗长的话:当我在多台计算机上开发具有不同连接性的应用程序时经常遇到这种情况–例如在运输过程中的便携式计算机,在特定位置的计算机“ A”和另一台计算机“ B”而在另一个。 另外,笔记本电脑可能仅与“ A”或“ B”(有时两者)具有连接。

我想让git始终从其当前可以连接的所有计算机“拉”和“推”到它,因此从一台机器跳到另一台机器并继续无缝地工作更容易。


#1楼

我自由地扩大了nona-urbiz的答案 ; 只需将其添加到您的〜/ .bashrc中即可:

git-pullall () { for RMT in $(git remote); do git pull -v $RMT $1; done; }    
alias git-pullall=git-pullall

git-pushall () { for RMT in $(git remote); do git push -v $RMT $1; done; }
alias git-pushall=git-pushall

用法:

git-pullall master

git-pushall master ## or
git-pushall

如果您不为git-pullall提供任何分支参数,那么从非默认远程服务器的拉取将失败; 保留此行为,因为它类似于git。


#2楼

从git 1.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。


#3楼

这是我在.gitconfig别名部分中使用bash脚本的示例

[alias]
        pushall = "!f(){ for i in `git remote`; do git push $i; done; };f"

#4楼

为了更新遥控器(即pull盒),事情变得更加容易。

莱纳斯的声明

可悲的是,甚至没有任何方法可以用git别名来伪造它。

elliottcable的答案中 Git邮件列表的引用条目中的不再为真。

git fetch在过去某个地方学习了--all参数,从而可以一次性获取所有远程对象。

如果没有全部请求,则可以使用--multiple开关来指定多个遥控器或一个组。


#5楼

添加新的遥控器

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

git remote -vv

从多个位置获取

git fetch --all

推送到位置

git push -u upstream/dev
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!