点击此处阅读原文:https://segmentfault.com/a/1190000009985489
相信每一个程序猿都听说过 GitHub 了,简单来说 GitHub 是一个主要提供基于 Git 来进行版本控制的项目托管服务的网站,她是世界上最大的开源软件社区,世界各地的程序猿在 GitHub 上开源自己的项目,关注和参与自己感兴趣的开源项目,嗯,同时 GitHub 还是世界上最大的同性交友网站。
什么是 GitHub
先来了解下 Git 和 GitHub 到底是个什么关系吧~
本文旨在使用通俗易懂的文字,讲解版本控制背后的理论,以便你能对程序员们如何工作有个全局概念。
求职面试时,你肯定看到过或者听说过在 GitHub 上有开源项目或是参加过别人的开源项目是加分项,甚至有面试官要求提供 GitHub 账号地址,那么 GitHub 到底为什么这么重要呢?
知乎上面有人总结了 GitHub 的基本功能:
- GitHub 是社交网站,具有和社交网站相同的好友、评论、赞、讨论等功能。
- 任何人均可参与其他人的代码仓库的开发。(当然不能直接改人家的代码。)
- 协同开发与编程,而且支持互相评论。
- 通过 Git 版本控制系统来提高生产力。
GitHub 入门
非常给力的从 0 开始系列,还不太熟悉的小伙伴们赶紧来学习 GitHub 吧!
我是从小白一路过来的,很能理解你们内心的感受与困惑,因为这些阶段都是我自己亲身经历过的,所以我写的文章都会从你们的角度去出发,并且我对文章高要求,除了排版、配图很用心外,文章的内容每次写完我都会亲自看三四遍,确保不会出现误导以及你们理解不了的情况,你们看的很轻松易懂的文章其实因为我背后做了很多的功课。
- 注册 GitHub
- 认识 GitHub
- GitHub 主页
- 设置你的 GitHub
- GitHub 基本概念
- 创建自己的项目
GitHub 是基于 Git 的,所以也就意味着 Git 是基础,如果你不会 Git ,那么接下来你完全继续不下去,所以今天的教程就来说说 Git ,当然关于 Git 的知识单凭一篇文章肯定说不完的,我这篇文章先介绍一些最基本的、最常用的一些 Git 知识,争取让你们 Git 速成。
从0开始学习 GitHub 系列之「向GitHub 提交代码」
上一篇文章只介绍了对本地 Git 仓库的基本操作,今天我就来介绍下如何跟远程仓库一起协作,教你们向 GitHub 上提交你们的第一行代码!
- SSH
- 生成SSH key
- GitHub 上添加 SSH key
- Push & Pull
- 提交代码
关于 Git 相信大家看了之前一系列的文章已经初步会使用了, 但是关于Git还有很多知识与技巧是你不知道的,今天就来给大家介绍下一些 Git 进阶的知识。
- 用户名和邮箱
- alias
- 其他配置
- diff
- checkout
- stash
- merge & rebase
- 解决冲突
SSH 深入研究
SSH 是一种网络协议,用于计算机之间的加密登录。目前是每一台 Linux 电脑的标准配置。而大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,所以想要在 GitHub 提交代码的第一步就是要先添加 SSH key 配置。
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
简单来说,SSH提供了两种级别的安全验证:
- 第一种级别是基于密码的安全验证,知道账号和密码,就可以登陆到远程主机。
Team的开发工作中,就是使用这种方式登陆编译服务器,或者开发机器。因为是在内网中,这种级别的安全验证已经足够了。
- 第二种级别是基于Public-key cryptography (公开密匙加密)机制的安全验证。
首先:查看你是否有../ssh 这个文件;
怎么查看;找到你的git安装目录,在安装目录下查看是否./ssh
作为一个开发者,经常要面对管理一大堆服务器的情况,对unix类服务器,我们一般用ssh连接来管理。那么你一般怎么连接ssh,输入密码?弱爆了,既难得记,又不安全。现在俺们都用证书来连接
ssh登录服务器是程序猿日常生活必不可少的一部分,也时不时的会遇到自己配置ssh登录的问题,拿日常使用的git来讲,不管使用github也好,还是自己搭建的gitlab等等,如果不能很好的理解ssh的原理,极容易遇到各种问题。这篇文章就尝试向大家简单讲解下ssh的原理、调试方式和常见问题。这里要讲的主要是免密码登录,也就是使用密钥登录的方式。
下面这个问题相信一定有小伙伴遇到过。
方案一与方案二都是创建 .git-credential 文件并写入用户信息,一个是手动创建,一个命令创建。
我们可能会需要在一台电脑上以不同的github账户去使用git,这时就需要去解决如何管理本机上的多个ssh key的问题了。
主要是 windows 用户会遇到很多纠结的问题,linux/unix 用户属于这方面的高端用户,应该有能力处理此类问题,而且网络上也有很多解决方案,本文的受众是 windows 用户。由于今天配置了一下午,虽说配置过程基本搞清楚,懒得重新配置一遍,所以文中皆以文字形式叙述,没有截图。
个人博客
GitHub Pages 是通过我们的网站托管和发布的公共网页。
你可以通过在线生成器创建和发布GitHub Pages页面。如果你偏爱本地操作,你可以使用Mac和Windows的GUI软件,或者是命令行。
GitHub Pages
Github 是如何用 Github 撰写 Github 文档的
文档团队通过 Github 利用 Github 的工作流程(译者注:即前文提到的 Markdown 编写内容,PR 提交等),Jekyll 以及 Github Pages 服务来提供一个高质量的文档。Github Pages 提供给我们文档团队的好处同样对每一个运行 Github Pages 的站点都是可用的。
- 确保你的username.github.io不会跳到别的站点
- 解决gh-pages分支clone到本地后出现push冲突
有任何问题,可以查看帮助文档。
翻译自 GitHub Pages的 Help 页面(仍在更新中)
Jekyll
又一个系列教程。
Jekyll将原始文本根据一定规则转换成静态的网页和博客。但这个转换并不是简单的字符串替换就了事了,而是首先读取各个文件中的内容,根据配置文件中描述的参数在内存中构建一个巨大的对象存储整个博客的信息,然后再将这些信息根据配置文件中定义的输出方式来生成具体的HTML文件。整个项目是由Ruby写的,所以若需要在本地调试则需要安装Ruby。
这篇文章主要介绍博客内容的编写及本地测试,内容主要来自Jekyll的文档、Liquid的文档
之前已经介绍了如何搭建环境和如何创建整个博客项目,并编写了博文,这篇文章主要就是介绍分页功能如何通过jekyll实现。
使用Jekyll在Github上搭建个人博客(文章分类索引)
- 使用Category分类
- 使用文章标签索引文章
使用Jekyll在Github上搭建个人博客(将本地博客上传至github)
- 预先准备
- 对已有项目进行git初始化
- 创建一个名为gh-pages的分支
- 发布
- 上传到github
- 修改后提交
hexo
hexo,更快,更轻,更简洁。你值得拥有~
之前我一直在使用wordpress(下称wp),就在前些日子,我爱上了markdown,但在wp上又没找到完美一点兼容markdown的插件。慢慢地,越来越觉得wp很臃肿,最终,我选择了放弃它了。现在,我选择了一个基于node.js的小萝莉hexo。
要想搭建漂亮的 blog,还需要模板系统,官方推荐的是 jekyll,但是配置稍复杂,今天推荐另一个选择 —— hexo,一个简单地、轻量地、基于 Node 的一个静态博客框架。
使用 hexo + github pages快速搭建个人博客
Hexo是一个基于Nodejs快速简洁高效的博客框架,Hexo使用Markdown语法来编辑文章,只需要几秒钟的时间就可以成生静态的网页。整个系统就是一个博客系统。
Github Issues
嗯,是的,github issues 还可以这样用。
Wordpress 、Typecho 太重,还要买 VPS、部署服务器环境、安装插件、主题,太折腾人,于是我想,完全可以利用 Github 提供的 API 来实现一个只有一个静态页面的博客,具体思路如下:
- 作者在 Github issues 上写文章(写 issues)
- 博客页面通过 JS Ajax 请求 Github API 来获取文章内容,进行页面的渲染
- 通过社会化评论插件实现评论功能
于是花了几天时间实现了这个设想
Gitment:使用 GitHub Issues 搭建评论系统
Gitment 是作者实现的一款基于 GitHub Issues 的评论系统。支持在前端直接引入,不需要任何后端代码。可以在页面进行登录、查看、评论、点赞等操作,同时有完整的 Markdown / GFM 和代码高亮支持。尤为适合各种基于 GitHub Pages 的静态博客或项目页面。
展示自己的项目
Github Pages,让用户能够自定义项目首页,同时,让其编写的网页能够通过域名访问直接展示出来。Github Pages被当作是用户编写的、托管在github上的静态网页,Github提供了一定的空间供开发者存放静态网页。
在github上搜索相关项目时会发现,有的项目不光写了一手好文档并且还给出了项目的在线运行Demo。事实胜于雄辩,一个在线演示可能给项目带来更好的印象分。如何在github上维护自己个人项目源代码的同时并生成项目主页呢?
经常会有人问我如何才能将自己做的静态页面放到网上供他人欣赏,是不是需要自己有一个服务器,是不是还要搞个域名才能访问?对于以上问题我都会回答:用github来展示你的前端页面吧。
优秀的开源项目
2016 年度 GitHub 上 Stars 最多的10个项目
工作中经常用到github上优秀、实用、轻量级、无依赖的插件和库
react闲谈——推荐几个github上超级star的异步插件
GitHub 助攻利器
用Node.js写了一个爬虫,可以获取GitHub各种编程语言star数前十的库
Github Trending基本上是我每天都会浏览的网页,上面会及时发布一些GIthub上比较有潜力的项目,或者说每日Star数增量排行榜。
不过由于Github Trending经常会实时更新,即使你访问得再勤,难免还是会错过一些你感兴趣的项目,为此不少人都想出了自己的解决办法,例如josephyzhou,他的github-trending 项目得到了众多人的青睐,我仔细阅读了他的源码 (Go),发现实现也较为简单, 就用Python 重写了一下,发现代码少了好多,详见 我的 github-trending。
作为GitHub党,分享一些好用的Chrome插件,帮助增强Github功能。标题名称在Chrome插件商场搜索,即可安装对应的插件。
迁移到Github之后,我们开始接入各方工具,提高我们的工作效率(钱可不能白花啊)。
Git-WebHook 自动化部署工具 - 支持Github / GitLab / Gogs / GitOsc
Git WebHook 是一个使用 Python Flask + SQLAchemy + Celery + Redis + React 开发的用于迅速搭建并使用 WebHook 进行自动化部署和运维系统,支持:Github / GitLab / Gogs / GitOsc。
最近自己写了一个Chrome浏览器扩展/插件(github repo),并将其发布到了谷歌官方商店(chrome web store),该插件为github上的仓库提供travis-ci运行状态和运行时间的图表,你可以直观地了解到哪些仓库(自己或者别人的)开通了travis-ci的build,还可以看到特定repo近十次build的时间和状态变化,鼠标置于具体build上,还可查看具体build时间和message,点击还可以进入特定的travis-ci build页面。
Chrome插件 GitHub-Chart Commits3D直方图视图
现在没有多少人不用github,使用频率很高,首页的contributions对于我们了解自己和别人的提交记录比较有帮助,简直是交友神器,修改成立体直方图以后更加直观。
我们平时搜索发现 GitHub 上的不错的 Repo 就点 Star 的方式收藏了起来,想哪天会用到,但真的要用时也想不起来叫什么了,而且越收藏就越多,找出来也很费劲的,网友呼吁 GitHub 出个 Tag 的功能,但官方似乎已经回应不会做此功能了。
使用了vue.js+webpack进行开发和构建。非常的简单,高效,没有多余的东西。
GitHub提供的Gist服务简直是保存代码段的神器!可以把gist当做一个小型仓库,具有版本控制,markdown。从网上的搜索的结果来看,好像在10年就推出了这项服务,真是知道的太晚了!请允许我大呼『工具改变生活!』『工具改变程序员的生活!』
GitHub 小贴士
跟着 Github 学习 Restful HTTP API 设计
单个GitHub帐号下添加多个GitHub Pages的相关问题
写在最后
SegmentFault 官方目前开放的群组如下:
- SF.GG 讲堂交流群
- SF.GG 前端攻城狮交流群
- SF.GG 北京技术交流群
- SF.GG 上海技术交流群
- SF.GG 广州技术交流群
- SF.GG 深圳技术交流群
- SF.GG 杭州技术交流群
以上群组仅限程序员加入,需要入群的小伙伴请添加管理员微信:mgr_segmentfault,备注『群名+SF用户ID』
,审核成功后会拉你进入相应群组。
# SegmentFault 技术周刊 #
「技术周刊」是 SegmentFault 社区特别推出的技术内容系列,两周一更新。周刊筛选的每篇内容,是作者的独到见解,踩坑总结和经验分享。