你真的会用 github 吗?教你做一名真正的Coder
正如菜鸟所言:“如果你是一枚Coder,但是你不知道Github,那么我觉的你就不是一个菜鸟级别的Coder,因为你压根不是真正Coder,你只是一个Code搬运工。”
1.github 简介
github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。
今天,GitHub已是:
- 一个拥有143万开发者的社区。其中不乏Linux发明者Torvalds这样的顶级黑客,以及Rails创始人DHH这样的年轻极客。
- 这个星球上最流行的开源托管服务。目前已托管431万git项目,不仅越来越多知名开源项目迁入GitHub,比如Ruby on Rails、jQuery、Ruby、Erlang/OTP;近三年流行的开源库往往在GitHub首发,例如:BootStrap、Node.js、CoffeScript等。
- alexa全球排名414的网站。
2.github 注册与使用
要想使用github第一步当然是注册github账号了, github官网地址:github.com/。 之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息。
配置GitHub
在克隆版本库之前我们要做什么呢?我们首先得生成公钥,然后复制到GitHub上然后我们才能使用 github 的代码管理功能。
(1)本地创建ssh key;
ssh-keygen -t rsa -C "your_email@youremail.com"
后面的your_email@youremail.com
改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/
下生成.ssh
文件夹,进去,打开id_rsa.pub
,复制里面的key
。
回到github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key。
(2)验证添加密钥是否成功
ssh -T git@github.com
如果是第一次的会提示是否continue,输入yes就会看到:You've successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
(3)将本地仓库上传
在此之前还需要设置username和email,因为github每次commit都会记录他们。
git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"
进入要上传的仓库,右键git bash,添加远程地址:
git remote add origin git@github.com:yourName/yourRepo.git
后面的yourName和yourRepo表示你再github的用户名和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote "origin"内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。
创建新文件夹,打开,然后执行 git init
以创建新的 git 仓库。
检出仓库
如果没有仓库的话,而是想要下载别人的代码呢?按下面这个流程:
执行如下命令以创建一个本地仓库的克隆版本:
git clone /path/to/repository
如果是远端服务器上的仓库,你的命令会是这个样子:
git clone username@host:/path/to/repository
最后就是使用 git 来管理代码了,关于 git 的使用方法建议参考阮老师的文章 常用 Git 命令清单
3.参与GitHub中其它开源项目
1.我们一直用GitHub作为免费的远程仓库,当然如果可以的话你也可以付费,给开源世界做点贡献嘛,嘿嘿。
如果是自己的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub既可以让别人参与你的开源项目,也可以参与别人的开源项目。
那么我们如何参与一个开源项目呢?比如人气极高的jquery框架,你可以访问它的项目主页github.com/jquery/jque…
注意
- clone仓库一定要从自己的账号下克隆,这样你才能推送修改。 如果从jquery的作者的仓库地址git@github.com:jquery/jquery.git克隆,因为没有权限,你将不能推送修改。如果你想修复jquery的一个bug或者新增一个功能,我想说你现在就可以开始开发了,开发完成后往自己的仓库推送。
- 如果你希望jquery的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,官方是否接受你的pull request就不一定了
4.watch、star、fork 的作用
watch
默认每一个用户都是处于Not watching的状态,当你选择Watching,表示你以后会关注这个项目的所有动态,以后只要这个项目发生变动,如被别人提交了pull request、被别人发起了issue等等情况,
你都会在自己的个人通知中心,收到一条通知消息,如果你设置了个人邮箱,那么你的邮箱也可能收到相应的邮件
如下,我 watch 了开源项目android-cn/android-discuss,那么以后任何人只要在这个项目下提交了 issue 或者在 issue 下面有任何留言,
我的通知中心就会通知我。如果你配置了邮箱,你还可能会因此不断的收到邮件。
star
star 翻译过来应该是星星,但是这个翻译没任何具体意义,这里解释为关注
或者点赞
更合适,当你点击 star,表示你喜欢这个项目或者通俗点,可以把他理解成朋友圈的点赞吧,表示对这个项目的支持。
不过相比朋友圈的点赞,github 里面会有一个列表,专门收集了你所有 start 过的项目,
点击 github 个人头像,可以看到 your star的条目,点击就可以查看你 star 过的所有项目了。如下图
fork
当选择 fork,相当于你自己有了一份原项目的拷贝,当然这个拷贝只是针对当时的项目文件,如果后续原项目文件发生改变,你必须通过其他的方式去同步。
一般来说,我们不需要使用 fork 这个功能,除非有一些项目,可能存在 bug 或者可以继续优化的地方,你想帮助原项目作者去完善这个项目或者单纯的想在原来项目基础上己维护一个属于自己项目(比如我 fork 的 AndroidWeekly 客户端,那么你可以 fork 一份项目下来,然后自己对这个项目进行修改完善,当你觉得项目没问题了,你就可以尝试发起 pull request 给原项目作者了。
然后就静静等待他的 merge 邮件通知了。
我看到很多人错误的在使用 fork。很多人把 fork 当成了收藏一样的功能,包括一开始使用 github 的我,每次看到一个好的项目就先 fork,
因为这样,就可以我的 repository(仓库)列表下查看 fork 的项目了。其实你完全可以使用 star 来达到这个目的。
5.在 github 如何跟牛人学习
与其在墙内仰望牛人,不如直接在GitHub:
- watch、fork牛人们
- 对他们的项目提交pull request
- 主动给牛人们的项目写wiki或提交测试用例,或者问题
- 还可以帮他们翻译中文
牛人在哪里?
- GitHub上的代码库本身:尤其是:Explore、热门关注信息库两个栏目
- GitHub官方推荐:GitHub自身的官方博客与GitHub员工们的个人博客推荐的项目与开发者
- 各类社交媒体上提到的的GitHub库:尤其是Hacker News上提到的GitHub库。
很多牛人最初也是通过 github 来记录自己的学习旅程的,甚至很多技术书的原稿就存在于 github 中,比如 《你不知道的javascript系列》
今天的分享就到这里,希望对大家有所帮助。
转载自:https://juejin.cn/post/7028738277171527717