适用场景:在不能直接push或者pull主库(远程仓库)的情况下(如公司的代码库不能随意操作),需要先fork到自己的个人仓库,然后再git clone到本地。
此时需要将主库的修改更新到本地,再将自己本地的修改与之merge,更新到自己的远程仓库,再对主库发起合并请求merge request,由commiter来review后合并。
操作如下:
(1)fork 远程仓库: 进入master主干代码页面,点击Fork按钮,Fork个人分支
(2)进入Fork好的个人分支,点击clone/download按钮,将弹框显示的地址复制,在下载代码的目录下,右击鼠标弹框,选择clone,粘贴之前复制的地址,在本地新建一个文件夹,右击 git bash here,输入 git clone [email protected]:xxxxxxxxxxxxxxx.git(自己的远程仓库)
(3) git remote -v #查看远程信息,可以看到自己的远程仓库,即fork库
(4)git remote add upstream [email protected]:xxxxxxxxxxxxxxx.git(主库:公司的远程仓库)
# git remote add 别名 远程仓库 ; 红色字体的名字可以随意取,,该步骤是为了添加远程库
(5) git remote -v #查看远程信息,可以看到自己的远程仓库以及远程仓库
如果报错,已存在,则删除 (输入 git remote remove upstream )
(6)git fetch upstrea (步骤6、7还是步骤8 ,选其一)
拉取仓库的所有分支,即从原仓库更新代码到本地
(7) git merge upstream master_fst8.0 #红色字体取决于分支名 ,用于合并到本地仓库
(8)git pull upstream master_fst8.0 # 更新并合并远程仓库的代码到本地(可以理解为步骤6、7合并)
git pull <upstream> <branch name>
(8)git push 提交到自己的远程仓库到fork库(即自己的远程仓库)