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> 命令;