昨天遇到一个问题,就是在公司开发时fork仓库后,添加功能,然后创建pull request,创建时提示我不能和主工程自动同步,当时我就纳闷了,怎么搞得,看看我自己的仓库,发现代码都是最新的,没问题啊,后来看看主工程发现,主工程有提交,瞬间我就XX了。
针对这种不会自动同步的情况,我解决办法是
假设我本地dev上有要要提交的代码,
1、另外创建一个分支(不包含你本地的提交,与你仓库最新代码保持一致)
git branch develop
git checkout develop
2、查看目前远程仓库 对应url
git remote -v
图上显示的就是你当前仓库拉去和推送分支
现在把你要同步的主工程url也添加进去
git remote add upstream url
现在让我们刚才创建的develop跟踪upstream 分支,然后把代码拉去下来,
然后将切换到你要提交的代码所在的分支
git checkout dev
git rebase develop # dev 和 develop合并代码
执行这一步后,你就可以push 代码了,这样会把你的代码和服务端代码同时推送到你的远程仓库。