而不是做:
git push origin --all && git push nodester --all && git push duostack --all
有没有一种方法只用一个命令就能做到这一点?
谢谢:)
而不是做:
git push origin --all && git push nodester --all && git push duostack --all
有没有一种方法只用一个命令就能做到这一点?
谢谢:)
当前回答
作为编辑.git/config文件的CLI替代方案,您可以使用以下命令:
# git remote add all origin-host:path/proj.git
# git remote set-url --add all nodester-host:path/proj.git
# git remote set-url --add all duostack-host:path/proj.git
同样的git push在这里也适用。
你已经完成了与答案1相同的任务。您只是使用命令行而不是对配置文件进行原始编辑。
其他回答
如果你已经有一个现有的存储库,其中origin作为默认的远程,并且想要通过调用git push(或使用IDE /文本编辑器的git sync按钮)来推送到多个远程存储库,首先添加当前的原始URL(用于所有操作,例如push, pull, fetch)作为特定于推送的远程原始URL:
git remote set-url --push --add origin "$(git remote get-url --push origin)"
... 然后将彼此的远程存储库添加到特定于推送的url中,就像这样:
git remote set-url --push --add origin "git@github.com:username/repo-name.git"
现在所有的获取和拉取操作都只能从原始的远程存储库中获取。
但是使用一个简单的git push, git会将您的最新更改推送到您现在添加的所有远程存储库。
创建一个包含多个repo url的all remote:
git remote add all origin-host:path/proj.git
git remote set-url --add all nodester-host:path/proj.git
git remote set-url --add all duostack-host:path/proj.git
那就把所有的都推下去。
这是它在.git/config中的样子:
[remote "all"]
url = origin-host:path/proj.git
url = nodester-host:path/proj.git
url = duostack-host:path/proj.git
作为编辑.git/config文件的CLI替代方案,您可以使用以下命令:
# git remote add all origin-host:path/proj.git
# git remote set-url --add all nodester-host:path/proj.git
# git remote set-url --add all duostack-host:path/proj.git
同样的git push在这里也适用。
你已经完成了与答案1相同的任务。您只是使用命令行而不是对配置文件进行原始编辑。
你可以利用git挂钩——尤其是pre-push:在.git/hooks/pre-push中添加非原始的推送。
将所有分支推到所有遥控器:
git remote | xargs -L1 git push --all
或者如果你想把一个特定的分支推到所有的遥控器:
用你想推的分支替换master。
git remote | xargs -L1 -I R git push R master
(奖励)为命令创建一个git别名:
git config --global alias.pushall '!git remote | xargs -L1 git push --all'
运行git pushall现在会将所有分支推到所有远程。