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