本文作者黄昱俊,国资企业投资部总经理,主要负责投资部门建设、投资流程管理、投后资源管理。历经10年,从医疗器械研发工程师到投资管理的蜕变,业余尝试etf量化投资。
本文介绍如何在github上更新fork以及pullrequest给源项目。
在github上更新fork
经常遇到的是fork一个项目之后,源项目的作者做了新的更改,如果没有同步到我自己的fork,我所做的更新进行pull request后,会产生冲突;因此在更新文件之前、至少是pull request之前,应当要更新自己的fork的。
更新fork的方法有很多,git写代码是很好的,当小白通常比较难做,步骤缺了就经常不奏效;所以我自己亲测了一个github上更新fork的方法,做一个教程,与朋友们共勉;废话少说,步骤如下。
一、进入自己fork来的项目,按new pull request按钮,新建一个pull request(简称:pr)。
二、如果自己还没有修改过fork项目的文件,那么此时可以点击switching the base,切换到基于我自己的fork项目。
如果已经修改或更新过fork项目的文件,那么可以通过选择base fork和head fork来从源项目更新到我自己的fork项目。
这里有个小技巧:在默认状态下,会是base源项目,head我自己的fork项目;这样选择任何一个时,会调到某个无法更新的页面;解决方法是先base或head一个其他人的账号下的fork,接着选择head/base源项目或我自己的fork项目,这样就不会出现base和head都是自己或者都是源项目的情况。
三、base和head设置完,就进入comparing changes页面,确认一下base和head,以及最新的更新内容。
内容没问题就create pr了,即上图绿色箭头所指向的绿色按钮;接着输入主题,create。
四、新create的pr在哪里可以找到呢?进入我自己的fork项目,导航条上的pr进入,看到open的有一个,就是刚才更新的。
点击进入确认一下。
五、把源项目的更新merge到我的fork项目。
confirm merge,确定这个更新;
可以看到,这个pr已经更新完成,呈紫色的merge状态。
六、最后验证一下是否更新到最新的项目,因为已知是更新了pattern recognition,所以直接进入。
查看到下面5个是最新修改的,15个小时之前修改了内容。
至此整个更新fork的方法步骤已完成,玩得愉快!
将更新的fork项目pullrequest给源项目
我们fork项目之后进行了修改或添加新文件,需要pull request(简称:pr)给源项目,让作者merge融入到他的源项目里。
在pr之前,甚至开始修改或创建新文件之前,先看看源项目是否有更新,如有更新,可按第一部分内容,先更新自己的fork项目,再做创建新文件,老司机说这样冲突比较少。
一、看到别人的好项目,如何“据为己有”?fork一下咯!
点击fork,会进入fork进行中的界面;
fork完成后,可以在自己的主页(your profile)看到fork的项目。
二、可以通过create new file或upload file新建或上传文件,要注意的是:上传的文件会把原来同名文件覆盖掉!
这里的会有文件上传的进度条,如下图:共13个文件,已上传9个;上传完成的文件会在下方显示。
这个上传文件由于服务器在国外的缘故,死慢死慢,经常就废了,如下图。
当看到下面这个processing your files…页面,那就恭喜你了,经过几十次的上传,总算work了;如果出现一片空白的页面,那么只好重复choose your files,再次confirm changes。
三、新建pr:可以在fork项目的根目录下,或者任意的目录下,pull request。
pull request后会进入comparing changes页面,核对一下base fork和head fork(蓝色圆圈)、以及更新的内容(紫色方框);由于已经更新过最新的源项目内容,与源项目同步好了,所以此时显示“able to merge”(红圈绿字);一切就绪,点击create创建pr。
输入主题,并create pr;
这时可以看到已经将这个更新pr给源项目作者,pr序号为#52,状态open。
四、源项目作者merge此pr,将此次的更改融入到源项目,并形成commits记录。
序号#52的pr已经merge:
进入源项目,查看commit记录:
至此,整个fork、修改或创建文件、pull request以及merge的步骤已完成,玩的愉快!
贵阳举办的“数博会”提出:信息基础设施保护是大数据安全关键
蚂蚁金服助力银行搭建高性能智能风控体系
大电流降压型同步整流DC-DC电源管理芯片转24V
智能防盗门锁真的可以保证安全吗?
ORACLE常见数据灾难和数据恢复可能性
如何在GitHub上更新Fork以及PullRequest给源项目
新思科技针对 S32G 车辆网络处理器推出 VDK软件产品
无人机上GPS上的各种启动你了解吗
w5300单片机源码
小米平板3怎么样值得买吗?小米平板3图赏
“第四代半导体” 迎重大突破!能否改变行业新技术?
卡顿终结者华为荣耀V9快如闪电,麒麟960+EMUI5.1操作系统
减速电机安装与使用时需要注意的八个要点
宜家发布“Rognan”系列可变形家具产品
【安防】激光对射功能及案例解析
将生物医学传感器固定在适当位置,使用医用安全胶带减少错误
AMD营收加速增长 创7年来单季最高水平
病害肉快速分析仪是什么,有什么作用?
基于MM32F0140的SPI与W25Q80通信的实现方案
如何实现一个验证MCU指令