当前位置: 首页 > Linux

如何在GitHub上大显身手?

时间:2023-04-06 11:31:27 Linux

码农都知道gitHub是开源和私有软件项目的托管平台。里面托管了很多优秀的项目,比如linux内核源码、git源码、机器学习框架tensorflow等。当然,除了这些顶级项目,还有一大批专家开发的优秀项目。所有这些项目,我们都可以为它贡献代码。那么你如何为这些项目贡献代码呢?让我们用下面的例子来解释。比如现在gitHub上有一个非常强大的项目githubTest,它的作者是Alvin,项目地址如下:https://github.com/yychuyu/githubTest现在Harry看到了这个项目,想贡献代码给它.为了实现这个目标,Harry需要完成下图中的步骤:1.fork找到项目后,Harry点击右上角的“fork”按钮。一段时间后,相同的项目githubTest将被克隆到Harry的帐户下,包括文件、提交历史、问题和其他内容。2.clone通过fork后,githubTest项目也存在于Harry的账号下,但是不能编译修改(其实可以修改,但是不推荐)。这个时候你可以通过gitclone命令把这个项目clone到你的电脑上。3.updateafile&4.commit接下来,Harry就可以大显身手,自由修改这个项目了。但是不建议直接在master分支上修改。建议在master分支的基础上切出一个dev分支,然后在dev分支上自由发挥。修改后,将dev分支合并到master分支。5.push在你的电脑上修改完代码后,使用gitpush命令将修改同步到你的gitHub项目仓库中。完成此操作后,您可以在代码库中看到您的提交。6.pullrequest接下来,将你的代码提交给原作者Alvin。首先点击文件列表中的“Newpullrequest”。之后gitHub会自动对比源仓库分支和自己仓库分支的代码,看是否有冲突。如果显示“Abletomerge”,Harry可以点击下面的绿色按钮“Createpullrequest”提交代码。之后,系统会要求您写评论,但您不必这样做。但是最好把它写下来,并向作者解释你改变了什么以及为什么。经过以上6个步骤,原作者Alvin会收到一个pullrequest,如下图所示:然后Alvin可以点进去看看Harry提交了哪些修改。如果他觉得这个修改真的足够niubility,他可以点击“mergepullrequest”将Harry的提交整合到自己的项目中。至此,功德圆满,Harry成功完成了项目githubTest的一次代码贡献。不过这个项目太优秀了,很多高手都看过,贡献了很多代码。比如现在Alvin自己提交了一个文件:现在原作者的项目变了,那么Harry账号下的githubTest怎么和原作者Alvin的项目保持同步呢?Harry需要做以下三步:1.Fetch既然代码不同步,我们需要先从Alvin的仓库中fetch代码到他电脑的仓库中。请注意,这是在您自己的计算机上完成的,而不是在github上完成的。gitfetchgit@github.com:yychuyu/githubTest.gitmaster:latest上面命令中gitfetch后面的部分是原作者Alvin项目的git地址,点击“克隆或下载”按钮可以看到的原始项目。master:latest部分之后,master是原项目分支,latest是自己的项目分支。如果最新的分支不存在,则会自动创建。其实你也可以把代码fetch到自己的master分支,但是不推荐这样做。2.merge代码抓取到latest分支后,再切到master分支,然后使用gitmerge命令将最新代码merge到master分支。3.push现在,Harry电脑上的代码已经和原来的项目代码同步了。然后我们使用gitpush命令将最新的代码推送到Harry账号下的githubTest项目中。以上三个步骤的具体操作过程如下图所示。接下来Harry可以在此基础上继续贡献自己的代码。更多精彩内容,关注公众号良旭Linux,在公众号回复1024免费领取5T技术资料,包括:Linux、C/C++、Python、树莓派、嵌入式、Java、人工智能等。公众号回复加群,邀你加入达人如云技术交流群。最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以和我一起把这本电子书做得更完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站