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

本文详细介绍了如何在GitHub上贡献代码,包括注册账号、查找项目、修改代码、提交Pull Request及保持项目同步的方法,对于初学者参与开源项目具有指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

如何贡献自己的力量

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

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

 

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

 

创建成功!

 

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

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

 

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

 

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

修改成功后的样子:

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

 

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



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

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

 

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


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

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

 

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

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

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

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

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

 

 

From:

http://www.cnblogs.com/rubylouvre/archive/2013/01/24/2874694.html

http://www.cnblogs.com/astwish/articles/3548844.html

 


 

作者:木木

出处:http://haore147.cnblogs.com/

博客文章大部分为原创,版权归作者和博客园共有,欢迎转载。

<think>好的,我现在需要解决用户的问题:在GitHubfork的源代码不包含版本(tag),如何解决?首先,我得回忆一下用户提供的引用内容,看看有没有相关的解决方法。 用户提到了引用[3],里面提到了如何同步fork仓库的tag。步骤包括克隆自己的仓库,添加原始仓库为upstream,然后获取tag推送。这可能就是关键步骤。另外,引用[4]也提到使用git remote add upstream来建立源仓库的链接,这可能也是必要的。 首先,用户fork的仓库默认可能不会自动同步原仓库的tag,所以需要手动操作。根据引用[3],用户需要先克隆自己的fork仓库到本地,然后添加原始仓库为upstream。接下来,用git fetch upstream --tags来获取所有tag,然后通过git push --tags推送到自己的fork仓库中。这样就能把原仓库的tag同步过来了。 另外,可能还需要同步主分支的更新,比如用git rebase upstream/master,确保代码是最新的。然后推送主分支和tag。用户可能遇到的问题是没有配置upstream,或者没有获取tag就直接推送了。需要检查这些步骤是否都正确执行。 总结步骤应该是:克隆fork的仓库,添加upstream远程,获取tag,合或变基主分支,最后推送tag到自己的仓库。这样就能解决fork后不包含版本的问题了。</think>要在GitHub上通过Fork获取带有版本控制(如Tag)的源代码,需手动同步原始仓库的标签。以下是具体步骤: ### 步骤说明 1. **克隆你的Fork仓库** ```bash git clone https://github.com/你的用户名/仓库名.git cd 仓库名 ``` 2. **添加原始仓库为上游(Upstream)** ```bash git remote add upstream https://github.com/原始作者/仓库名.git ``` 这一步用于建立与原始仓库的关联[^4]。 3. **同步原始仓库的Tag和分支** ```bash git fetch upstream --tags # 拉取原始仓库的所有Tag[^3] git rebase upstream/master # 同步主分支更新(若主分支是main则替换为main) ``` 4. **将Tag推送到你的Fork仓库** ```bash git push origin master # 先推送主分支更新 git push --tags # 推送所有Tag到你的仓库 ``` ### 验证结果 - 在GitHub仓库页面的**Releases/Tags**栏中,应能看到同步后的Tag。 ### 后续更新 若原始仓库新增Tag,重复步骤3-4即可同步最新版本。 --- ### 相关问题 1. 如何避免Fork仓库与原始仓库的分支冲突? 2. Git中`git fetch`和`git pull`的区别是什么? 3. 如何删除本地或远程仓库中无效的Tag? [^1]: 引用自GitHub Fork代码更新方法 : 引用自GitHub同步Tag的解决方案 [^4]: 引用自双向更新中upstream配置方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值