如何在github上fork一个项目来贡献代码以及同步原作者的修改

作为一个IT人,通过github进行学习是最快的成长手段。我们可以浏览别人的优秀代码。但只看不动手还是成长得很慢,因此为别人贡献代码才是明智之举。比如我们看下片看,许多大片都是由字幕组免费翻译压制的。为什么他们要这样做呢?因为他们都是聪明的大学生,为了提高听力水平,提高笔译水平才这样干的!中国人都是非常实务的!因此贡献代码,参与开源项目都是有益无害的!好了,让我们开始吧!

如何贡献自己的力量

首先你总得有自己的github帐号吧,注册一个,非常简单,只需用户名,邮箱,密码,邮箱只是用来找回密码的,不做验证。因此注册后立即能用!比如我现在新注册一个叫JsLouvre的示范帐号。

1.jpg

然后搜索我的项目——mass Framework

2.jpg 3.jpg

第一个就是,点击进入项目,然后点上方的Fork按钮,这就拷贝一份我的项目的副本作为你自己的项目

4.jpg 5.jpg

创建成功!

6.jpg 7.jpg

接着就是修改代码了,这要在自己发现真的存在漏洞或有什么改进之处才要动手啊!不能想改就改。要通读你要改的那一部分,必要时通读全框架。因此新手们最好找国内高手的框架进行学习, 一来中文注释比较亲切,二来也方便接下来的交流。通常我们在clone git到本地进行修改的,这又涉及另外一些工具与命令的学习。不过,github完全允许你在线上进行修改,提交,合并。

比如你发现data模块的注释与mass模块的不一样,要统一合并,将函数外的注释移到里头。(更有意义的方式是,打开http://www.jshint.com/,就能发现许多小问题。

8.jpg 9.jpg

变成编辑状态,不过不太好用。大家有条件一定要学学如何使用TortoiseGit或Sublime Text 2下载github项目到本地,进行修改,提交,pull request啊!

10.jpg 11.jpg

请认真写下你的修改日志,方便原框架作者查阅。

12.jpg

修改成功后的样子:

13.jpg

接着下来一步非常重要,就是提交你的修改给原作者。点击上方的pull request按钮!

14.jpg 15.jpg

红色区域为原作者的项目,你要贡献的目标;亮蓝色区域为你的项目;黑色处填写标题与必须描述;点击右下方绿区域的按扭进行提交!



接着下来就是框架作者的事儿了,我会在自己的项目看到你们的提交。万一以后你们有幸被别人贡献代码,也做这活儿。

16.jpg

点击中间那个大大的pull request(2)的按钮到另一页面,中间有个被鲜绿色高亮的merge pull request按钮。作者查看你的修改,觉得可以就点它进行合并。

17.jpg 18.jpg

最后你们就会在原项目上看到自己贡献的代码!

19.jpg

如何让自己的项目与原作者的项目保持同步!

我经常看到许多人,只会fork一次,提交过一次修改就不知怎么办了!因此原框架作者是非常勤奋的,一天会提交N次,一个星期后许多文件都改动过了,而那些代码贡献者不可能一个个跟着修改。 因此我们还是用到上方的pull request按钮。

20.jpg 21.jpg

这次是把自己的项目放到左边,原框架作者放到右边,在选择过程中,你会发现原框架作者有许多贡献者的。这里我希望大家一定要浏览Commits与Files Changed进行学习!这也是github最大的价值所在!把握别人对代码的改进,最能提高我们编码水平。这里面会涉及大量的编码技巧!

22.jpg

补上必要说明,然后点击下方send pull request按钮。

很快你就看到评论区最下方有个鲜绿色高亮的按钮,继续点就是。

23.jpg

继续让你确认,没问题就继续点!

24.jpg

这样就同步成功!!!!!!

### 如何在GitHub上进行fork操作 #### 创建Fork 当希望基于他人的项目创建自己的版本而不影响原项目时,可以使用Fork功能。通过点击目标仓库页面右上方的"Fork"按钮来启动此过程[^1]。 ```bash # 假设已经登录到GitHub账户 # 找到想要分叉的目标仓库主页 # 页面顶部右侧有明显的 "Fork" 按钮 ``` #### Clone Fork后的仓库至本地环境 完成上述步骤后,在个人账号下的新复制版库中会看到该项目副本。此时可将其克隆下来以便于本地开发: ```bash git clone https://github.com/YourUsername/ForkedRepo.git cd ForkedRepo ``` #### 设置上游远程地址并与之同步更新 为了能够获取原始项目的最新改动,需配置指向源仓库的远端连接,并定期拉取最新的变更记录: ```bash # 添加名为 'upstream' 的远程链接指向官方主仓 git remote add upstream https://github.com/OriginalAuthor/OriginalRepo.git # 查看当前已设置的所有远程路径确认无误 git remote -v # 获取来自上级资源库的数据流但不自动合并入工作区 git fetch upstream # 将抓取的内容整合进指定分支内(通常为主干master) git merge upstream/master # 或者采用更简洁的一键式同步方式 git pull upstream master ``` #### 提交Pull Request贡献代码改进 经过一系列编辑调整之后准备向初始作者发起请求审核所作变动,则按照如下流程执行: ```bash # 创立新的特性专题分支开展具体任务前 git checkout -b feature-branch-name # 完成编码作业后再切换回默认发布线路上做最终集成测试 git checkout main || git checkout master # 把特色子项里的成果纳入主线之中去 git merge feature-branch-name # 推送到云端服务器等待他人审阅反馈意见 git push origin HEAD ``` 最后一步就是在网页界面上找到对应位置提交PR给维护人员评估是否采纳这些变化了[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值