摘要
Github 我们经常会通过 fork 开源项目在自己的仓库中更新,然后提交 Pull Request (Merge Request) 为开源项目做贡献。不过我们经常会遇到原仓库更新,重新 fork 显然是不优雅的,那我我们该怎么同步更新呢?
这个方式适合新手,对git命令和原理不是很清楚的。按照下面的步骤进行操作,就拿spring-boot项目的Fork为例!
1.进入你自己的 fork 过来的仓库。
2.点击 "Pull requests" ,如何点击右侧绿色的 "New pull request"。
3.Github 首先会比较源仓库与你 fork 后的仓库,如果你没有做任何更改,则找不到要 PR 的内容。所以,我们需要点击 "switching the base",会将我们的仓库作为基础版本,原仓库作为 head 版本,现在我们会看到我们的需要需要 "catch up" 的更新。
4.点击 "Create pull request",起一个名字,然后点击 "Create pull request"。
5.点击 "Merge pull request",然后点击 "Confirm merge"。
6.如果我们没提交什么新代码,merge 过程将自动完成。
打开fork 过来的项目如下所示:
1.验证远程分支可以 fetch 或 push
git remote -v
2. 指明我们需要同步的仓库
git remote add upstream https://github.com/OriginalRepo/OriginalProject.git
3. 验证
git remote -v
4. 拉取更新的 branches 和 commits
git fetch upstream
5. Checkout 本地分支
git checkout topic/jiale_xiong/vxp5878(这个的是远端分支的下的分支)
6. 合并
git merge upstream/xjl-001
git rebase upstream/xjl-001
7. 提交(upstream仓库和origin仓库)
git push origin -f topic/jiale_xiong/vxp5878:xjl-001
博文参考