我用過兩種方法,最早的時候是設(shè)定多個 remote,然后寫一個 alias,比如:
$ git config alias.pushall "!git push origin && git push dev"
后來在某一個版本(忘了具體的版本號)升級之后,Git 多了一項設(shè)置,使得你可以為一個 remote 設(shè)置多個 pushurl。比如說你問題里的例子,我可以不要 remote "dev",只留下 remote "origin",然后加一句:
git remote --set-url --add --push origin git@gitlab.com:root/XXX.git
在這之后,你的 remote "origin" 就變成類似如下的結(jié)構(gòu):
[remote "origin"]
url = git@github.com:SegmentFault/XXX.git
fetch = +refs/heads/*:refs/remotes/origin/*
pushurl = git@github.com:SegmentFault/XXX.git
pushurl = git@gitlab.com:root/XXX.git
如此一來,我可以直接 git push origin 就可以推向兩個 repos 了。
這兩種方法其實各有各的適用場景,自己取舍吧。