1. init repository 后先加入github
$ git init.$ git remote add origin git@github.com/username/project
2. 查看 remote 是这样
$ git remote -vorigin git@github.com/username/project(fetch)origin git@github.com/username/project(push)
3. 再用 --push 参数加上 gitlab
$ git remote set-url --push --add origin git@gitlab.com/username/project
4. 再查看 remote 可以发现多了一个 push 的位置
$ git remote -vorigin git@github.com/username/project(fetch)origin git@github.com/username/project(push)origin git@gitlab.com/username/project(push)
此时当你 git pull origin 就会从 github 拉资料到本地
当你 git push origin 就会同时把资料推到 github 及gitlab
如果 push 时因故发生一个成功另一个失败,例如 github push 成功后,gitlab 确发生 ssh key 失效,此时两个 remote 不同步,解决的方法是单独 push gitlab
$ git push git@gitlab.com/username/project
此做法有一个缺点,由于只会从 github fetch 资料到本地,所以你用 log 也只看得到本地及 github 的状态,gitlab 上的状态无从得知,要嘛你上 gitlab 网站上肉眼比对,要嘛你就严格限制 gitlab 就只有你会推资料上去所以"应该"跟github是一致的。