GitHub——我愿意迷失在其中

GitHub——我愿意迷失在其中

前言

此文面向于:1、从来没听说过GitHub,但是突然因为某些原因想了解一下的非IT童鞋;2、从未听过GitHub或者只了解一些,希望能够快速入门的程序员初学者;3、常年混迹于GitHub并在其中留有传说的技术大牛——如果有什么错误,感谢您的指正。

没错,我是来填坑的。
几个月过去了,我成功的从大学毕业到现在的一个小厂工作,2017学习计划 到现在也完成了一部分,对于GitHub的使用就是其中之一。现在就是填坑的时候了~我会在下面介绍一些GitHub的一些基本信息和我对其中某一部分的了解,还有一些基本的操作方法。

在这里感谢stormzhang的技术博客【从0开始学习GitHub】给了我很大的帮助,说是帮我入门也不为过,在这里表示衷心的感谢。

当然了,如果你看到这(如果有人能看的话)会说“那我直接去看那个博客多好”或者是“不是说不要重复造*么”。如果你去看【从0开始学习GitHub】,那么我会很开心,因为stormzhang的技术博客十分优秀,能给你最大的启发和帮助 (博客链接);如果你能继续往下看,那么对我们两个人来说都是件幸运的事:对于我是因为我的文字能别其他人看到;对于你,能够在不足一小时之内对GitHub有基本了解和使用,并能由此快速的将其应用到学习和工作之中。

英文好的话可以自行参阅GitHub官方引导 ——如何创建一个[HelloWorld项目] https://guides.github.com/activities/hello-world/

Git 简介

在介绍GitHub之前一定要介绍Git,不仅是因为GitHub是基于Git建立的线上代码库,还是因为几乎每篇介绍GitHub的文章都会先介绍Git….

对于Git,相信每一个了解过的同学对其赞不绝口,因为它实在是优秀。二对于某些所谓的git教程,都是“毁誉参半”,包括我。每一次在查看git教程的时候,都会被开始时候的长篇大论所困扰于是就暂时放弃了阅读,等到下一次阅读的时候直接跳过开头看干货。在这,我不准备长篇累牍的叙述什么是Git,Git的发展是怎样的 bla bla bla….在这,我只介绍以下几点
* Git 是一款非常好用的版本控制工具(具体内容自己Google)
* Git 由 Linux 之父 Linus Torvalds 开发(对 Linus 表示敬意)
* 与其他版本控制工具一样,如SVN,当你不是这个项目的管理者或者是单独负责某一个模块的话,你使用Git与使用SVN一样:clone项目、增加或者修改代码、检查冲突、提交代码、上传代码…仅此而已(甚至你不需要会使用git命令行,对于初学者来说,命令行实在是繁琐)
* 当你成为项目管理者之前,你一定要会使用git,尤其是git命令

Github 简介

GitHub萌萌哒的被网友们魔改的吉祥物

GitHub——我愿意迷失在其中

GitHub是面向与开源和私有的线上代码库,与2008年4月10号正式上线。

好了,正式的就说这么多,下面我们聊些不正式的。
GitHub作为全世界最大的开源代码托管网站,托管了无数世界*互联网公司的开源代码如Google、Apache基金会、Twitter、Facebook、Alibaba等等,同时也托管了无数优秀的个人项目如Habernate、Redis、Vue等,当然也有全球程序员上传的个人项目、框架、文章和blog。

有人戏称GitHub是程序员的Wiki百科,我认为GitHub不仅是百科,也是Key,一把帮助我们打开一扇扇技术瓶颈大门的钥匙。

不同于其他的代码托管网站、GitHub提供了一个特别的功能:代码社交。之前在知乎上看到了一个特别有趣的关于GitHub的图片,这里给大家看看

GitHub——我愿意迷失在其中

大多数程序员都是孤独的,而GitHub正好提供了这样的一个方式能让程序员通过代码来交流,沟通技术和“情感”。我想除了GitHub上无数优秀的开源代码之外,这也是吸引我们的原因之一吧~

在13年的时候,GitHub曾经被我们的 The Great Wall 拦截在国门之外,于是IT行业沸腾了,经过由李开复先生带头发微博呼吁,转发量近10万、浏览评论过百万——终于在3天后恢复访问,后来的一段时间也偶尔有几次访问不了的情况,但是很快就恢复,然后有人出来澄清是误封……对于国家政策我们在这不过多评论,只是感慨,看来The Great Wall管理中心 还是害怕上百万程序员集体*的。

主要模块

GitHub 已经走过了近十年,从当年那个简单的代码托管网站到现在的一个大型的综合性质的代码托管网站[笑~] GitHub上增加了很多功能,为大家提供了更多的服务

GitHub——我愿意迷失在其中

我使用白色框围住的地方,是四个按钮,分别是Pull request、Issues、MarketPlace与Explore。

前两个与你个人项目相关:
* 拉取请求 Pull request:如果你的项目有其他分支,并且修改后的分支要求合并到master分支上,这时,这里就会出现请求列表,你需要对请求处理之后将其合并到master上或者关闭这个请求

GitHub——我愿意迷失在其中

  • 问题回答 Issues:项目不是完美的,所以其他人或者你自己需要提出意见、建议以及bug,提issue在项目详情页下部分,要求分支合并也在那。而这里,显示的是需要你处理的Issue列表,你可以回复该issue的问题、可以给这个issue打上标签交给其他人处理、或者将其设定为里程碑、当然你也可以关闭这个issue,任何有关于这个项目的issue以及回答都会在你项目主页issue标签中公开,所以,认真一点。

GitHub——我愿意迷失在其中

后两个,与GitHub的功能服务有关。

  • GitHub 市场:GitHub不再是当年那个只靠私有线上库盈利的小网站了,现在的GitHub为个人和企业提供了各种各样的、免费或收费的各种服务或者工具,它们统一被整合在 MarketPlace 中

GitHub——我愿意迷失在其中

  • 探索 Explore:正如他的描述中说的那样:浏览有趣的项目,解决各种有趣的问题。这个页面由GitHub管理员进行管理,管理员们根据各种因素将当前最热的或者最有趣的项目挑选出来,按照一定分类进行整合,然后就成为你浏览的这个页面~ 享受探索的乐趣吧,骚年

GitHub——我愿意迷失在其中

等等,我是不是忘了点什么,主页呢?主页去哪了啊!

GitHub——我愿意迷失在其中

从GitHub上下载项目

到这里,相信你已经 Star 或者 Watch 了几个你感兴趣的项目,接下来应该干什么来着?当然是把代码下载下来啊,放在那里留着看么!
~(以guava举例)~

GitHub——我愿意迷失在其中

方式 1 、下载项目文件压缩包

嗯,点击【Download ZIP】,下载好之后解压即可…诶诶诶,干嘛…把刀放下…

方式 2 、在GitHub桌面工具中打开

对于GitHub桌面工具Desktop的部分介绍请浏览下面【在GitHub上创建项目】的方法 2。 (为什么会这样?因为那部分是先写的 (~ ̄▽ ̄)~ )

嗯,如果安装好了GitHub的桌面版本之后,点击【Open in Desktop】,就行了….诶诶诶,你怎么又把刀拿起来了呢…

咳咳,这时候,查看你的Desktop,会出现如下内容

GitHub——我愿意迷失在其中

方式 3 、 采用Git clone

行了!把刀放下!这次是正经的!这一天天的…

在本章开始的图中,我们可以找到一个Git URL:
https://github.com/google/guava.git

接下来你可以使用Git窗口,采用命令行的形式来clone这个项目

GitHub——我愿意迷失在其中

也可以使用可视化工具如TortoiseGit

GitHub——我愿意迷失在其中

或者使用GitHub桌面Desktop File下Clone a repository

GitHub——我愿意迷失在其中

至于为什么报错,是因为guava我以前已经下载了

代码已经下载,还在等什么?畅快的学习起来吧!

在GitHub上创建项目

Star 也点了,代码也下载了,我们该上传点自己的项目了~

在GitHub上创建项目可以有很多方式。在这,我介绍以下三种方式

方式 1 、 在 GitHub 网页上创建

在网页上创建一个Github开源项目可是说是这几个方法中最简单的一个了,他不需要你会使用任何的IDE,只需要一点点的英文与Markdown的语法~(不是全部,真的只要一点点)~

我们开始:在注册登录好GitHub账号之后,在主页点击 [Start a project] 开始一个项目

GitHub——我愿意迷失在其中

我们以HelloWorld为例,来添加一些信息~

GitHub——我愿意迷失在其中

接着,

GitHub——我愿意迷失在其中

这个时候,Github帮助你创建一个项目并跳转到你的项目管理页面

GitHub——我愿意迷失在其中

上面显示了很多信息,比如一次提交、一个分支(master)、没有releases、一个贡献者(就是你本人)和Apache 2.0的开源协议。中间位置显示的是你项目所含的文件与文件夹内容,可以点击进行编辑。最下面README.md 是你对你项目的整体描述信息,采用 markdown 编辑器。

(全文结束)当然不可能,不然会有童鞋寄刀片的~
下面,向项目中增加代码

GitHub——我愿意迷失在其中

接着,添加一些提交信息

GitHub——我愿意迷失在其中

然后我们回到项目主页,会发现上面的信息有了一些修改

GitHub——我愿意迷失在其中

commit次数变为两侧,增加了src与src下的java文件夹,并有提交信息提示。
使用GitHub网页来创建项目与提交项目代码暂时就写到这里,下面还有同样方便快捷的方式。

方式 2 、 使用 GitHub 桌面工具

GitHub——我愿意迷失在其中

无论是在GitHub社区还是在技术网站中,GitHub桌面应用程序都不被广大开发者所接受。尤其是在16年发布时还需要在线下载,而因为某些世人皆知的原因,国内的开发者们对于下载速度简直深恶痛绝~甚至有人还放出了“宁可使用网络版和命令行我也不用这个东西”。

随着更新,GitHub桌面终于取消了那个在线下载和更新的功能,更加上GitHub官方的大力推广,桌面版才开始逐渐走入开发者的眼中。在我看来,这个工具的功能还算是比较强大,既可以作为可视化工具比如小乌龟(tortoiseGit)、可以作为代码浏览器来查看历史代码与接收更新信息、也能够浏览代码变化,但有一点我不喜欢,他不能作为文本编辑工具来使用:就是说,只能看不能写(也许官方处于某些原因上的考虑),不过可以配合着IDE共同使用,IDE负责代码的编写GitHub桌面版负责代码的拉取与提交~

这里放出一个官网的链接 https://desktop.github.com/

下面,我们来使用 DeskTop 来进行一个项目的创建。

GitHub——我愿意迷失在其中

点击 File,点选 New repository,会出现如下弹窗,嘿嘿嘿,是不是很熟悉~

GitHub——我愿意迷失在其中

还是熟悉的配方还是熟悉的味…咳咳,换汤不换药
项目名——HelloWorld ;本地位置——D:\github;添加README.md的文件;没有忽略修改的文件类型;采用Apache 2.0 的开源协议。
这时候估计会有童鞋问我:诶诶诶,为啥是本地的,不是网络位置么~ (捋了一下没几根的胡子)不急不急,下面就说

GitHub——我愿意迷失在其中

这个时候,一个本地的项目就创建好了,能看到一些文本上的变化。接下来,我们将这个项目推送到GitHub上。~(你需要注意一下项目名称,如果你的线上库中已经存在具有该名称的项目,就会报错,推送失败)~

GitHub——我愿意迷失在其中

等待几秒之后,项目被上传,打开你的GitHub网站

GitHub——我愿意迷失在其中

之后就可以配合IDE将你的项目发扬光大啦

方式 3 、 使用 IntelliJ IDEA 集成开发工具

GitHub——我愿意迷失在其中

说起 IDEA ,这是个非常优秀的集成开发环境。在软件开发人员中流传着这样一句话:“如果你从使用idea转到使用Eclipse,那么一段时间后你会转回使用idea;如果你从Eclipse转到使用idea,那么你会一直使用idea”。

idea集成的许多功能让程序员们爱不释手,idea与Git的整合更是如虎添翼。idea更是添加了许多GitHub相关功能,比如“直接将项目分享到GitHub”(也不知道idea与GitHub之间进行了怎样的PY交易~)

想要通过idea直接创建项目并发布到GitHub,需要以下前置条件
* idea与git需要下载安装 —— (看官:你他喵的一定是在逗我)
* idea与git需要配置关联 —— 这个请各位看官自行百度,很简单
* idea配置登录GitHub —— 这个可以说一说,在idea中有两种方法可以连接到GitHub,一种是用户名密码连接(这个适用于你个人项目,没有其他人参与或者你是主管理员),第二种是使用GitHub提供的token(为项目贡献者提供,不会泄露你的账号信息),token可以在GitHub 的settings 页面生成获取,然后在idea中粘贴进去,测试连接后配置成功

GitHub——我愿意迷失在其中

我们先按照正常步骤创建一个工程,命名为helloworld

GitHub——我愿意迷失在其中

接着进行一系列的操作,噼里啪啦噼里啪啦…
首先,我们要把这个项目创建为git项目,这样才能使用git丰富的功能

GitHub——我愿意迷失在其中

接着就是 Add 项目然后 Commit

GitHub——我愿意迷失在其中

接下来就是振奋人心的时刻了,将这个项目分享到GitHub。当然了,在github上不能有同名项目,不然会报错

GitHub——我愿意迷失在其中

添加一些信息

GitHub——我愿意迷失在其中

Desription中填写的内容会在GitHub上一个有趣的地方进行展示

GitHub——我愿意迷失在其中

GitHub——我愿意迷失在其中

我们打开GitHub,发现项目已经成功的分享到了GitHub上

GitHub——我愿意迷失在其中

哈哈,看到那个有趣的地方没有

在idea中进行更改文件、添加文件、删除文件之后按照正常的流程进行 Git–>add、commit、push 之后,你的修改就会发布到GitHub上,从此,就能快乐的编码了~妈妈再也不用担心我的代码被误删了

小结

经过你补充、完善,这个项目会更加的安全、实用,会增加更多的功能,慢慢的会有其他的开发者(也可能是盗窃者)来研究、使用你的项目,并提出相关的意见、建议和bug。不要抗拒他,这能帮助你成长,帮助项目成长~

使用GitHub网页或者其他工具来在GitHub上创建一个项目并提交或者更改项目代码就先写到这里,在以后的blog中,我们会研究GitHub的issue管理、分支合并、创建里程碑等等“进阶应用”。

从GitHub删除项目

我在上面实际上是创建了三个HelloWorld项目,可是GitHub不允许某个账户中有多个同名的项目存在,比如这样

GitHub——我愿意迷失在其中

那么,在需要的时候,我应该将某个项目删除。或者是在创建好一个项目,而添加的信息你不满意或者是未来你想要删除某个项目的时候,需要删除它。

其实,这并不算是一个小技能,只是“删除项目”这个按钮“不太好找”而已。。。

进入你GitHub想要删除的项目主页,点击Settings,进入管理页面

GitHub——我愿意迷失在其中

里面你可以配置各种信息,包括但不限于改名、增加贡献者等等~

GitHub——我愿意迷失在其中

将页面拉到最下边  ̄ω ̄=

GitHub——我愿意迷失在其中

点击 Delete this repository ,然后在弹出的文本框中输入这个要被你删除的项目的项目名称

GitHub——我愿意迷失在其中

当然了,你点击 I understand bla bla 。。。。之后,还不是结束,你还要输入一次你的密码进行最后的验证,GitHub给了你最后一次反悔的机会~

GitHub——我愿意迷失在其中

终于,你成功的删除了他,你的项目列表页再也没有了他的影子,江湖中…我确定一定不会有他的传说,不然你舍得删?

后记

在接触到GitHub的时候,我好像是一块干燥的海绵接触到了大海,我探索着各种项目:出名的、不出名的、框架类的、文档类的、书籍类的、整合类的,我疯狂的Star、Watch,关注着我感兴趣的、认为有趣的所有东西。

我为此感到兴奋、幸福,然而慢慢的我开始感觉到惶恐。固然海绵吸水量巨大,但是也有承载度的,过多的水也会溢出。每天GitHub推送的无数更新(Watch标记的项目更新时,不进行一些设置的话GitHub会给你邮件推送)让我无暇专注我的工作和学习。于是我开始精简我关注的、星标的项目。只留下我需要现阶段学习的、工作中用到的、和我感兴趣的以下几个项目:

精简使我更加专注。

不要关注太多项目,因为GitHub上好东西太多,你是关注不完的。而且,他就在那里,不离不弃。(你问如果GitHub被墙了怎么办?——找我,我帮你*)

最后的最后

这有一个傲娇的二维码,里面有个萌妹纸~

GitHub——我愿意迷失在其中