善用GitHub
善用GitHub
GitHub是微软旗下的一个在线软件源代码托管服务平台,也是一个拥有八千多万开发者用户的社区。很多开发者应该对GitHub有一定的了解,但非技术人员大多可能并不会去使用它。本文更多是想给非技术人员来介绍这个平台,看完这篇文章,希望能让更多人在上面来学习、创作与展示自己的作品。
GitHub是好的学习平台
GitHub拥有非常多的开源项目,这些开源项目中的一些已经成为了IT行业的软件基石,比如Linux内核项目。
如果你想学一门软件开发的技术,比如学会用Python做一些数据分析,那GitHub就是这方最好的一个学习平台。为什么这么说?
学习首先是需要找一个好的教程,在GitHub上最不缺的就是教程类的项目。以Python为例,通过在GitHub上搜索,可以很容易找到这个Awesome Python的项目,它收集了很多Python相关的教程、项目、库等等。
你可以在这个项目中找到你想要的学习资料。而且因为它是一个Star数近十五万的明星项目,被很多开发者认可,所以上面推荐的资料质量也是非常高的。
当然GitHub并不完全是英文的,中文资料也很多,不过我还是推荐尽可能使用英文的资料,如果你要走技术之路,英文是必须的。
找到教程学习后,接下来就是去开发一个真正的项目了。按正常的流程,我们需要在我们的电脑上配置复杂的软件开发环境,就这一步已经让很多人望而却步了。
但是在GitHub上,你可以直接在网页上编辑代码,然后提交到GitHub上,这样你就可以在任何一台电脑上开发你的项目了。这个功能叫做GitHub Codespaces。
比如下面就是我在开发的一个开源项目,其是一个基于Python的项目,我可以在网页上直接编辑代码,然后提交到GitHub上。
在上图红框部分可以创建一个免费在线的开发环境,打开后就是一个网页版的VSCode。也就是说GitHub给了你一个云端开发环境(一个拥有Root用户权限的Linux系统,可以配置安装任何软件)!这个开发环境可以一直存储在云端,在任何时候打开就可以继续开发,保存在上面的文件也不会被删除。
有时候当你只想阅读其他人的代码时,在GitHub网页上按下键就会自动打开一个在线VSCode的开发环境,相比网页可以更方面的阅读与搜索代码。
GitHub是好的写作平台
基于Markdown的写作一直是我推崇的,早在十年前,我在Wordpress上写作,Wordpress提供了最简单的网站搭建体验,以至于全球有超过四成的网站都是用Wordpress搭建的,包括个人博客。
但Wordpress的搭建还是太麻烦了,虽然现在很多国内的云服务商都提供了一键搭建Wordpress的功能,但还是有很多限制,比如不是免费的,需要备案,需要维护服务器等。
在GitHub上写作非常简单,只需要一个GitHub账号,然后在GitHub上创建一个仓库,然后在仓库里创建一个Markdown文件,就可以开始写作了。写作的内容就是Markdown格式的文本,GitHub会自动将Markdown转换为HTML,然后在浏览器上显示出来。
除了这种方式,还可以使用Cloudflare Pages,它可以将GitHub仓库里的内容自动部署到Cloudflare的CDN上,这样就可以使用自定义域名了。
如果你想要更好的写作体验,还可以使用这个vuepress-theme-hope的开源项目,它提供了非常强大的定制能力,使用方式却很简单,比如我用它在GitHub上搭建了一个文档网站:free4chat开发手记。
在每个页面的底部都有一个在GitHub上编辑此页的按钮,点击后就可以直接在GitHub上修改这个页面,修改后提交,GitHub会自动重新构建网站,然后你就可以在网站上看到修改后的内容了。
由于GitHub的仓库会自动保存每次修订的历史记录,如果出错也可以回退到之前的版本,再也不担心数据丢失的问题了。
GitHub是好的开发平台
GitHub是最好的开发平台。从上面的内容相信你可以看出来,GitHub围绕软件的搜索、阅读与开发体验方面做了很多改进。甚至用一个浏览器就可以完成软件产品的开发、测试与部署。本文不会详细的介绍GitHub的全部功能,但以下这些功能是我感觉非常值得尝试的:
1、GitHub Codespaces:提供一个在线的云端IDE,可以在浏览器里直接编辑代码,然后在云端编译、运行、调试代码,非常方便。
2、GitHub Copilot:提供一个在线的AI代码自动补全功能,可以根据上下文对你的代码自动补全,甚至包括写博客!(这篇文章的一部分就是这个AI小助手自动撰写的,你能看出来吗?)
3、GitHub Actions:提供一个Pipeline as Code的CI/CD服务。比如可以实现,当博客文章更新时,自动发送通知给订阅者,我的博客就实现了类似的功能,具体的实现可以看这个文件:github/workflows/gh-pagesyml。
4、GitHub Packages:提供类似Docker Hub的软件包管理功能。
最重要的是,这些功能很多都提供了免费的额度,足够日常使用了,你要做的就是去创作,利用技术杠杆去实现自己的想法。
利用GitHub打造个人技术影响力
打造个人技术影响力,可能是很多开发者无偿在GitHub上创造各种开源项目的一个主要原因。而技术影响力又可以让开发者能获得更多的机会,比如获得更多的工作机会,影响更多的人等。
在GitHub上你可以找到很多很厉害的人,比如前端大佬antfu,Elixir的作者JoséValim,通过关注这些人的动态,了解最新的技术趋势,不断提高自己的技术能力。
GitHub也是一个很好的技术展示平台,你可以通过创建自己的GitHub Profile来展示自己的技术栈,比如我的GitHub Profile。也可以用这个工具GitHub Profile README Generator来生成自己的GitHub Profile。
基于GitHub的生态
GitHub的生态系统非常庞大,有很多SaaS服务可以与其集成,从而提供完美的开发体验,比如:
1、SSO:很多技术网站都提供了GitHub的SSO集成,尤其是和开发者SaaS服务相关的网站,如果要使用这些服务,则必须要有一个GitHub账号。
2、Cloudflare:全球最流行的CDN,和GitHub集成后,Cloudflare Pages可以实现自动部署,当代码push到GitHub后,Cloudflare会自动将网站发布到Cloudflare的全球网络节点中。
3、Vercel:和Cloudflare Pages一样,集成GitHub后,可以自动部署网站到Vercel的CDN网络中。我的一些小工具就是部署到Vercel上的。
4、Railway:提供了后端服务包括数据库的托管,集成GitHub后,可以自动部署应用到Railway的服务器上。
这些SaaS服务同样都提供了一些免费额度,轻度使用,可以免费做很多小项目。
GitHub Next
GitHub Next正在探索一些能影响软件开发未来的方向,目前有几个方向挺有意思的:
1、AI:或者说深度学习模型,正在逐渐的改变世界,比如GitHub Copilot正是基于深度学习模型来实现代码自动补全的功能。未来基于GitHub Copilot的代码重构、写自动化测试、与开发者结对编程也不是不可能的事情,当然让AI帮我们写文章,或者合写文章也是一件自然而然的事情。
2、语音编程:如果能通过自然语言与GitHub Copilot沟通,那编程将会变成搭积木一样的简单,一些基本的功能就可以通过语音来实现,而不需要写代码。这事想想就觉得不可思议,甚至有种托尼·斯塔克与贾维斯对话去制造钢铁侠战甲的感觉。
3、协作:由于疫情的出现,远程工作正变得越来越流行(或者说需要),远程结对编写代码目前还没有什么比较好的方式,解决多人如何在同一个代码库实时协作是个有意思的领域。
4、可交互文档:虽然GitHub现在对Markdown的支持已经非常好了,但这种支持还仅限静态的,如何让文档变得可交互,让文档更有表达性,也是一个值得进一步挖掘的方向。
虽然我注册GitHub有很多年了,但逐渐投入越来越多的时间在上面还是在这几年。尤其是这两年来,我愈发觉得GitHub正在逐渐改变软件开发的常规模式。
尤其是GitHub Copilot的出现,以及一条龙式的开发体验,甚至以后从代码的设计、开发、测试到部署都可以在GitHub网页上完成,这些都是我之前想象不到的。
希望这篇文章能让读者对GitHub有个全新的了解,如果你还没有注册GitHub,那就赶紧去注册一个吧。
说明:Git,Github,GitLab三者关系。
Git - 是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。(svn是集中化的版本控制系统)。
GitHub - 是一个面向开源及私有软件项目的托管平台(也就一个网站),提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等。它可以托管各种git库,并提供一个web界面。被戏称为“全世界最大的同性交流社区”。
GitLab - 基于Git的项目管理软件。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
当然啦国内开源中国出的“码云”,第一次听得人还以为是“马云”。我酱紫。它跟Github功能差不多,都能建立公有和私有的仓库。不过嘛感觉有点封闭,社区没有Github热闹。
有的人就说啦,我完全可以在Github或者GitLab上做远端代码仓库,为啥还要倒腾GitLab自建代码托管系统?就一个字: “代码安全性”(公司保密规定)。 对于公司来说,GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:
一、自建代码托管系统都需要做些什么工作?
1 选择开源软件
Git 大家族的 GitLab ,它提供了完善的用户权限管理,除了涵盖 Git 所有的功能,同时又提供方便的后台管理。分别有CE(社区版)、EE(企业版)、OM(RPM 包完整版)三个版本,目前市面上开发者们的普遍选择是使用 CE 版的源码,成本较低且相对方便。
2 硬件设施方面
如果是对于中小型企业来讲,自建机房一般成本较高,所以除非是大型集团企业。现在市面上存在太多的云服务器厂商,平均价格多在 5000元/年以上,都是不错的选择。
可能遇到的坑:
3由于个人眼界以及信息不对称,目前大部分公司都是在公司局域网内自行用GitLab搭建代码托管系统。部署Gitlab 是对服务器有配置要求的建议是CPU两核,内存4G以上。个人经验,勿喷啦。
二、搭建过程(这里仅是作者接触的,其实还有很多更高级的盘法)
Gitlab的服务构成
1搭建方法分为:传统方式安装GitLab和Docker安装(推荐)。
2传统安装过程(平台使用centos7安装)
安装和配置必要的依赖项:
安装Postfix以发送通知邮件:
在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。
添加GitLab镜像源并安装gitlab服务器:
注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口。
重置并启动GitLab:
访问 GitLab页面:如果没有域名,直接输入服务器ip和指定端口进行访问
获取/修改超级管理员root的密码:
最后我们使用默认的账号:root 和刚刚设置好的密码12345678进行登录。
后面的步骤配置SSH key,git Bash的global config等初始化设置跟GitHub一样。可是还有一点就是“汉化”。(英文不好的小伙伴)但是有一定风险,后面我打开报502错误。有两种方法:用git比对出英文与中文的补丁,将英文打补丁。第二是直接下载中文版,替换英文。
3Docker安装(推荐)
(1)配置docker镜像
直接从 docker hub 获取的话速度非常慢,所以需要配置一个镜像。我使用的是 daocloudio提供的加速器,速度很快。
(2)获取 GitLab 镜像
下载完成后,查看镜像列表
(3)启动容器
3个--publish指定容器与主机的端口映射,分别是 http、https、ssh
3个--volume指定数据卷的映射,分别是 gitlab 的 配置、日志、数据
(4)配置外部访问 URL
修改 gitlab 配置文件:
找到 external_url 这一项修改为自己服务器的访问地址:
保存后,重启容器
(5)访问
初次访问时,gitlab 要求我们重置管理员密码,修改完成后登录。默认用户root。
当然以上为个人实验,公司里面大部分为CTO等大佬已经搭建完毕,我们主要是折腾。
最后推荐个人用很顺手的工具: SourceTree (可视化界面的Git),当然啦要想成为大牛或者装13也好,还是从Git Bash里敲命令行。
1、环境准备
服务器:CentOS 73 + git (1831)
客户端:win10 + git (2170windows1)
2、服务器安装git
yum install -y git
3、创建git用户,管理 git服务
[root@localhost home]# useradd git
[root@localhost home]# passwd git
4、服务器创建git 仓库
设置/home/git/repository-git 为git 服务器仓库,然后把 git 仓库的 owner 修改为 git 用户。
复制代码
[root@localhost git]# mkdir repository-git
[root@localhost git]# git init --bare repository-git/
Initialized empty Git repository in /home/git/repository-gt/
[root@localhost git]# chown -R git:git repository-git/
5、客户端安装git
下载 Git for Windows,地址:https://git-for-windowsgithubio/
安装完之后,可以使用 Git Bash 作为命令行客户端。
51、选择一个目录 F:\project\sell 作为本地仓库,右键进入Git Bash 命令行模式
初始化本地仓库:git init
52、尝试克隆一个服务器的空仓库到本地仓库
git clone git@192168116129:/home/git/repository-gt
第一次连接到目标 Git 服务器时会得到一个提示:
The authenticity of host '192168116129(192168116129)' can't be established
RSA key fingerprint is SHA256:Ve6WV/SCA059EqoUOzbFoZdfmMh3B259nigfmvdadqQ
Are you sure you want to continue connecting (yes/no)
选择 yes:
Warning: Permanently added '192168116129' (RSA) to the list of known hosts
此时 C:\Users\用户名\ssh 下会多出一个文件 known_hosts,以后在这台电脑上再次连接目标 Git 服务器时不会再提示上面的语句。
工具/材料
电子邮箱账号
01通过搜狗搜索GitHub,进入到这个官方网站,这个网站的性质是全世界最大的极客交流平台,点击sign up进行账号注册,如果已经有了账号,可以点击sign in进行登陆。。
02注册的时候需要填写这个用户名,电子邮箱和密码,电子邮箱填写自己正常使用的,因为到后面需要进行邮箱验证。密码需要复杂,包括字母和数字才能设置成功。
03GitHub这里有免费版和会员版,普通用户点击第一个免费版本就可以正常使用建站功能了。
04然后是一个问卷调查表,主要就是了解一下你的编程水平、自己的身份和注册的目的。
05注册完成后会跳转到下面的界面,点击start a project,意思是创建一个项目
06在这里需要验证邮箱地址才能创建成功,这就是之前告诉大家注册的时候要使用自己常用的邮箱的原因。
07打开自己的邮箱,登陆账号,点击邮箱中的verify your email,就会再次跳转到GitHub官网
08这里我们点击创建项目就可以正常创建了。
09在仓库中进行命名创建一个仓库,仓库用于存放网页的代码,网页的素材,可以交权限设置为共享,或者是建私人可见。
10创建成功之后呢,有一行选项卡,点击最后一个setting
11界面向下滚动,找到GitHub pages,点击下面的主题,choose a theme
12这里,我们就选择第一个主题,主要差别就是背景。
13之后在代码也可以看到自己的用户名以及这个仓库名,代码在中间部位可以进行编辑。
14那我们这个网站的网址是什么呢?我们再次点击setting
15同样找到GitHub pages,在下面就会出现自己的网站域名,点击即可进行访问
16这里就可以看到我们之前选中的主题,大概就是下面的这个样子。
17 18修改代码需要点击下面的保存修改,然后进行提交,在界面底部有一个绿色按钮,点击即可。
19然后我们再访问自己的网站,使用F5刷新 ,如果你网页修改的篇幅比较大,它这个服务器会有缓存的时间需要稍微等待一会儿才会在网页上显示。
20怎样将网页分享给别人?
我们创建域名,设计网页不是为了给自己看,需要通过一定的方法将网页进行分享,这里可以使用下面中的工具将网页,用二维码分享给别人。
21选中转化网址,将网页粘贴过来,点击生成二维码
22二维码的样式可以修改,最主要的是可以将其下载下来。
23之后我们就可以将这个二维码,通过QQ,微信等方式分享给好友,让我的网站得到充分的传播。
特别提示代码修改后不会立即同步,需要稍等。
1 首先,使用管理员身份登录到CentOS7系统。2 确定系统中是否已经安装了Git。可以通过运行以下命令来检查: ``` git --version ``` 如果该命令返回Git的版本信息,则说明Git已经安装了,并且可以跳过接下来的步骤。3 如果你的系统上没有Git,可以通过运行以下命令来安装Git: ``` sudo yum install git ``` 这将下载并安装最新的Git版本。4 在安装完成后,运行以下命令来确保Git已经正确安装并运行: ``` git --version ``` 输出应该显示Git的版本信息。现在Git已经在CentOS7上成功安装并运行,你可以使用它来管理你的代码了。
0条评论