最近实习,做前端项目,小组内每个人都有一个完整的版本库,但是每个人一开始远程克隆下来的地址各不相同(例如我是aaa@X.com 而同事是 bbb@X.com, ccc@X.com等等),那么,每个人做完自己的修改再向远程推送的时候,难道不是只向自己的那个远程库推送吗?可是为什么我可以pull下来别人的修改,就好像我们的远程库是同一个一样?
滿天的星座2017-05-02 09:34:12
你说的每个人一开始克隆的仓库应该一开始是fork
来自同一仓库的,就是说有一个公共仓库 sss
,你说的aaa
, bbb
, ccc
都是fork
来自sss
的仓库,然后每个人修改了在推送自然是往各自的仓库推送的,但是aaa
可以向sss
发起一个PR,就是pull request
,那么这个pr如果被合并到sss上之后,你就可以在本地添加sss
的远程仓库,然后pull下来别人的修改。
相对应的git命令如下:
假设你的远程仓库ddd
fork来自sss
,那么你可以clone下来ddd
之后,添加远程sss
的仓库
git remote add sss <sss的git地址>
如果aaa
修改了自己的仓库代码之后,向sss
发起一个pull request
,sss
又合并了这个PR,那么你在本地可以pull下来sss
的改变
git pull --rebase sss