git同时推送到多个存储库
这个问题在这里已经有了答案:
我不认为你可以通过在git上设置一个标志来做到这一点,但你可以修改一个配置文件,它允许你推送到多个远程存储库,而无需手动输入全部内容(只在第一次输入它们,之后)
在.git/config
文件中,您可以将多个URL添加到定义的远程:
[remote "all"]
url=ssh://user@server/repos/g0.git
url=ssh://user@server/repos/g1.git
如果你现在git push all
你推动所有的远程网址。
没有手动编辑
您可以通过使用git config --add remote.xyz.url
和不同的URL,直接从命令行向远程分支(例如all
)添加多个URL:
git config --add remote.all.url ssh://user@server/repos/g0.git
git config --add remote.all.url ssh://user@server/repos/g1.git
全自动
如果你超级懒惰,并且不忍心多次复制/贴上网址,这是给你的:
function git-add-push-all() {
while read -r name url method; do
git config --add remote.all.url "$url"
done < <(git remote -v | awk '!/^all/ && /push/')
}
git-add-push-all # from git (sub)directory
一个完整的bashy脚本是可能的(test $name
和$method
),但awk
很可爱,每个人都有爱。
推
然后你可以推送到所有的远程
git push all
参考
您也可以从配置的遥控器获取网址:
for repo in g0 g1 ...
do
git config --add remote.all.url `git config remote.$repo.url`
done
其中g0,g1,...是您遥控器的名称。
链接地址: http://www.djcxy.com/p/49765.html