git fork模式整理

git fork模式流程

<url> = 项目地址(http://gitlab.xxx.com.cn/xxx/xxx.git)
<repo> = 仓库名(origin、upstream)
<branch> = 分支(xxx.xxx)

1.fork项目

2.关联公仓

git remote add upstream <url> 本地仓库关联公仓
git fetch upstream 同步公仓
git remote -v 可查看关联仓库信息;origin 是远程私仓,upstream 是刚才关联的公仓;

  

3.更新代码

推送本地修改到远程私仓前,一定要先从公仓拉取最新代码,否则合并时有冲突不好处理;提交代码,从私仓发起请求,公仓的合并不需要管;push到本地的代码私仓,进入私仓发起合并请求到公仓;

4.处理冲突

如果提交合并请求后,提示有冲突无法完成合并,则需要手动解决冲突;
本地 git pull upstream <branch>,强制将公仓的代码拉下来,效果等同如下:

git fetch upstream
git merge upstream/<branch>

解决完冲突后,提交 push 到私仓,即可合并;
一个分支一次只能发起一个合并请求,如果前一次合并未完成,之后的每次 commit push都会堆积在该次合并请求里;

5.公仓新建的分支如何同步到私仓

git remote update 或 git fetch upstream 同步公仓分支;如果没同步,checkout 指令会创建一个本地新分支而不是切换新分支;git checkout <branch> 切换到新分支,此时该分支关联的是主仓;
git push --set-upstream origin <branch> 将新分支推送并关联到私仓,自此完成公仓到私仓的新分支同步;

其他命令

git branch -vv 查看分支详情;
修改本地分支关联的仓库,用 git branch --set-upstream-to=<repo>/<branch> 命令;

  

原文地址:https://www.cnblogs.com/coder-zyc/p/15006803.html