做空者:有没有一种方法可以让git回购推送到远程回购列表(而不是一个单一的“来源”)中并从中提取?
长篇大论:当我在多台电脑上开发一个应用程序时,我经常会遇到这样的情况,这些电脑具有不同的连接能力——比如,一台笔记本电脑在运输途中,一台电脑“a”在某个位置,另一台电脑则“B”在另一台位置。此外,笔记本电脑可能只与“A”或“B”连接,有时两者都连接。
我希望git始终“拉”到它当前可以连接的所有计算机,这样从一台机器跳到另一台机器,继续无缝工作就更容易了。
做空者:有没有一种方法可以让git回购推送到远程回购列表(而不是一个单一的“来源”)中并从中提取?
长篇大论:当我在多台电脑上开发一个应用程序时,我经常会遇到这样的情况,这些电脑具有不同的连接能力——比如,一台笔记本电脑在运输途中,一台电脑“a”在某个位置,另一台电脑则“B”在另一台位置。此外,笔记本电脑可能只与“A”或“B”连接,有时两者都连接。
我希望git始终“拉”到它当前可以连接的所有计算机,这样从一台机器跳到另一台机器,继续无缝工作就更容易了。
当前回答
添加all remote有点乏味,因为您必须在使用的每台机器上进行设置。
此外,提供的bash和git别名都假定您将推送到所有远程。(例如:我在GitHub和GitLab上维护了一个sshag分支。我添加了上游远程,但我没有权限推送它。)
这里有一个git别名,它只通过包含@的推送URL推送到远程设备。
psall = "!f() { \
for R in $(git remote -v | awk '/@.*push/ { print $1 }'); do \
git push $R $1; \
done \
}; f"
其他回答
使用以下命令向全局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推球
并且代码将被更新到所有远程设备,包括原始远程设备。
添加all remote有点乏味,因为您必须在使用的每台机器上进行设置。
此外,提供的bash和git别名都假定您将推送到所有远程。(例如:我在GitHub和GitLab上维护了一个sshag分支。我添加了上游远程,但我没有权限推送它。)
这里有一个git别名,它只通过包含@的推送URL推送到远程设备。
psall = "!f() { \
for R in $(git remote -v | awk '/@.*push/ { print $1 }'); do \
git push $R $1; \
done \
}; f"
您可以通过以下方式添加遥控器:
git remote add a urla
git remote add b urlb
然后,要更新所有回购,请执行以下操作:
git remote update
我将两个单独的pushurl添加到.git配置文件中的远程“源”。当我运行git push origin“branchName”时,它将运行并推送到每个url。不确定是否有更简单的方法来实现这一点,但这对我自己来说是可行的,既可以推送Github源代码,也可以推送My.visualStudio源代码。
[remote "origin"]
url = "Main Repo URL"
fetch = +refs/heads/*:refs/remotes/origin/*
pushurl = "repo1 URL"
pushurl = "reop2 URl"
为了更新遥控器(即拉杆箱),事情变得更容易了。
莱纳斯的声明
可悲的是,根本没有办法用一个数字来伪装别名
elliottcable的答案不再为真。
gitfetch在过去的某个地方学习了--all参数,允许一次性获取所有遥控器。
如果没有全部请求,可以使用--multiple开关来指定多个远程或一个组。