github标准pull request提交流程
普通的git提交命令用的很熟练了,但是相对参与的github开源项目不多,偶尔参与一个提交pull request,还真的应付不过来。
总结一下,方便以后使用。
1、fork开源项目的分支。
2、这时候自己的项目里面多了一个工程。这个工程是原项目的拷贝,你可以在这个项目里面做任意你所需要的修改,因为修改的只是一个拷贝工程,所以不会影响原项目。
流程:选择Clone or download,拷贝链接,
使用命令:git clone xxx(链接)到本地。这个项目就是上面所说的项目拷贝。
3、这时候我们就会有需求了。如果我们fork的项目有更新怎么办呢?我们拷贝的只是一个原版,后面更新的内容自然是没有的。
如果你说重新再fork这个项目的话,自然也是没有问题的,只不过这样是不是有点太low了,而且如果我们在fork的项目里面做了改动呢?
解决方式是添加远程分支:
git remote add upstream https://github.com/alibaba/freeline //添加远程分支,upstream名字自定义
git fetch upstream//拉取远程分支。
切换到想要更新的目录,合并分支
git merge upstream/master //把远程分支的master分支合并到当前分支,这样远程项目中的修改就合并到了本地。
4、最后,我们的需求是修改了内容,想要合并到人家的分支上了。
一般来说,别人合并分支是希望有一个干净的提交,即如图这样的提交。自己的commit基于远程项目最新commit之后。
所以目前比较推荐的做法是新创建一个分支,拉取fork项目的最新代码,但是把自己的提交cherry-pick到这个分支上。最后push到自己的fork项目中,最后申请pull request。
流程:
git checkout -b mmmmm_master upstream/master//创建新分支,并指向fork项目的master分支
git checkout mmmm_master//切换到原有的分支中,这个分支中存储着我们修改的内容的commit。
git log//查看commit,copycommit
git checkout mmmmm_master//切换回新分支
git cherry-pick 0b0eadf36e22e6f682c852458a379b0acd93cdf2//把提交拉取到新分支
git branch -vv//查看一下分支对应情况,确保push的分支指向是对的。
git push origin mmmmm_master//推送分支到自己fork的项目中。
最后一步,打开网站,切换到最新分支,点击New pull request,填写内容,申请就好了。
收尾工作:
我们提交了之后这个分支其实就没有什么用处了。我们可以删掉这个分支:
git push origin :mmm_master
相关文章
- git上传本地项目到github,方法2
- GitHub
- Failed to connect to github.com port 443: Timed out
- Github 如何获取 GitHub Client ID and Client Secret
- GitHub 秘籍
- 将已有的项目提交到GitHub
- GitHub排行榜
- 删除github上我们不想要的仓库
- 【GitHub】在Github主页显示你的个人简历
- Android优秀github项目整理
- Git以及Github使用指南(英文和中文翻译版)
- Github remote: error: File .vscode/.browse.c_cpp.db exceeds GitHub's file size of 100.00 MB问题的解决
- GitHub上线Trending功能,帮你轻松找到有潜力的开源项目
- [解决]Github Desktop中History历史文件预览有中文乱码问题
- 人工智能科技成熟的11个Github上免费开源项目,很多电影中才有的场景应用到现实颠覆普通人的认知和想象
- 内网服务暴露到外网,实现内网穿透(外网访问内网服务器),自动化配置和部署方案之frp,附实现源码,相关资源放到 GitHub 上免费下载