github账号是什么

如果你想学一门软件开发的技术,比如学会用Python做一些数据分析,那GitHub就是这方的一个学习平台。为什么这么说?

git的we5进去,打开 id_rsa.pub,里面的 keyb协作社区。github账号是一个基于git的web协作社区,它有多种机制让大家协同的和你一起的对项目进行贡献。GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为的版本库格式进行托管,故名GitHub。

github账号注册 github账号注册用户邮箱github账号注册 github账号注册用户邮箱


github账号注册 github账号注册用户邮箱


Github多账号登陆

学习首先是需要找一个好的教程,在GitHub上不缺的就是教程类的项目。以Python为例,通过在GitHub上搜索,可以很容易找到这个Awesome Python的项目,它收集了很多Python相关的教程、项目、库等等。而且因为它是一个Star数近十五万的明星项目,被很多开发者认可,所以上面的资料质量也是非常高的。

因为想把公司和个人账号分开,在Github上建了两个账号,结果发现在一台机器上要同时使用两个账号还需要一些额外配置,这里记录下具体配置步骤。

git remote add origin git@github:zhouxihi/ZXTabBarController.git

首先两个账号的ssh key登陆要配置好,这里就不记录,具体可以参考 文档 或者这个issue文章里前面的介绍 配置多个git账号 。

配置多个git账号 这里面提供的多账号登陆的配置其实基本上全了,但我配完后遇到的一个问题是账号并没有根据指定域名来切换认证的key信息,导致账号权限错误。搜索一番后才发现少了 IdentitiesOnly yes 这个配置。终使用的完整 ~/.ssh/config 配置文件内容示例如下:

根据 StackOverflow上一个问题的解答 了解到IdentityFile实际上只是将用户指定的key文件添加到SSH agent里(默认的key比如版本1使用的~/.ssh/identity和版本2使用的 ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_rsa)。而 IdentitiesOnly yes 阻止使用默认的id,否则如果有id文件匹配默认的名字,他们将会在ssh认证过程中先被尝试使用。

配置好后可以通过 ssh -T git@s.github 来验证输出的账户信息是否和User中指定的用户名一致。

另外由于user1使用的Host变成了 s.github ,需要修改该用户项目的remote配置:

如何使用git创建远程仓库

首先, 先到github网站注册账号以后每次有修改本地文件就只要下面三个步骤就可以推送到了。

2然后创建一个项目, Create a new reitory,如下图所示:

3之后在在Reitory name 填入 ZXTabBarController(你的远程仓库名) ,其他保持默认设置,

点击"Create reitory"按钮,就成功地创建了一个新的Git仓库,如下图所示:

4打开终端进入你的文件目录

ssh-keygen -t rsa -C "zhouxihi@aliyun"

成功的话会在~/下生成.ssh文件夹,如下图所示:

vi /Users/jackey/.ssh/id_rsa.pub

里面的所有内容, 然后回到github网页选择setting,如下图所示:

6进入settings后选择SSH and GPG keys,如下图所示:

7选择New SSH Key,如下图所示:

8输入完title和key后选择Add SSH key按钮完成添加。

9现在回到终端, 测试下是否能连接到github

ssh -T git@github

看到这样的提示就说明设置好了

bogon:ZXTabBarController jackey$ ssh -T git@github Hi zhouxihi! You've successfully authenticated, but GitHub does not provide shell access.

10

然后就可以将本地文件push到远程仓库了

首先初始化本地仓库

git init

添加文件

git add .

写入缓存

git commit -m 'first upload'

添加远程仓库

推送文件到远程仓库

git push -u origin

显示. done就可以了

bogon:ZXTabBarController jackey$ git push -u origin Counting objects: 57, done. Delta compression using up to 4 threads. Compressing objects: (51/51), done. Writing objects: (57/57), 86.20 KiB | 0 bytes/s, done. Total 57 (delta 14), reused 0 (delta 0) remote: Resolving deltas: (14/14), done. To git@github:zhouxihi/ZXTabBarController.git [new branch] -> Branch set up to track remote branch from origin.

11

->git add.

->git commitGitHub还提供了强大的代码搜索功能,除了在://GitHub上搜索外,还可以在GitHub code search上搜索,这个搜索引擎可以搜索GitHub上的所有的公开仓库代码。我觉得它提供了类似sourcegraph的体验,包括更好的代码符号跳转功能。 -m 'second upload'

->git push -u origin

12

如果想从拉下来, 可以用指令

git clone XXX.git

善用GitHub

GitHub是好的学习平台。

GitHub拥有非常多的开源项目,这些开源项目中的一些已经成为了IT行业的软件基石,比如Linux内核项目。

如果你想学一门软件开发的技术,比如学会用Python做一些数据分析,那GitHub就是这方面的一个学习平台。为什么这么说?

当然GitHub并不完全是英文的,中文资料也很多,不过我还是尽可能使用英文的资料,如果你要走技术之路,英文是必须的。

找到教程学习后,接下来就是去开发一个真正的项目了。按正常的流程,我们需要在我们的电脑上配置复杂的软件开发环境,就这一步已经让很多人望而却步了。但是在GitHub上,你可以直接在网页上编辑代码,然后提交到GitHub上,这样你就可以在任何一台电脑上开发你的项目了。这个功能叫做GitHub Codespaces。

比如下面就是我在开发的一个开源项目,其是一个基于Python的项目,我可以在网页上直接编辑代码,然后提交到GitHub上。

在上图红框部分可以创建一个免费在线的开发环境,打开后就是一个网页版的VSCode。也就是说GitHub给了你一个云端开发环境(一个拥有Root用户权限的Linux系统,可以配置安装任何软件)!这个开发环境可以一直存储在云端,在任何时候打开就可以继续开发,保存在上面的文件也不会被删除。

有时候当你只想阅读其他人的代码时,在GitHub网页上按下.键就会自动打开一个在线VSCode的开发环境,相比网页可以更方面的阅读与搜索代码。

在一个浏览器内搞改为你在 github 上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。定代码的搜索、阅读与开发功能,我觉得这是非常震撼的,起码在十几年前是不可能的。

如果你并不想写代码,只想写点文字,GitHub也能给你带来非常好的写作体验。

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上搭建的,你可以在这个仓库查看到它的原始文件:bmpi-dev/bmpi.dev。

善用GitHub

GitHub是微软旗下的一个在线软件源代码托管服务平台,也是一个拥有八千多万开发者用户的社区。很多开发者应该对GitHub有一定的了解,但非技术人员大多可能并不会去使用它。本文更多是想给非技术人员来介绍这个平台,看完这篇文章,希望能让更多人在上面来学习、创作与展示自己的作品。

GitHub是好的学习平台

GitHub拥有非常多的开源项目,这些开源项目中的一些已经成为了IT行业的软件基石,比如Linux内核项目。

学习首先是需要找一个好的教程,在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-pages.yml。

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、协作:由于的出现,远程工作正变得越来越如果想给网站添加评论功能,可以使用giscus,它会自动将评论保存到GitHub仓库的Discussions里,这样就不用担心评论数据丢失的问题了。比如本博客的评论数据都在这里:bmpi-dev/流行(或者说需要),远程结对编写代码目前还没有什么比较好的方式,解决多人如何在同一个代码库实时协作是个有意思的领域。

4、可交互文档:虽然GitHub现在对Markdown的支持已经非常好了,但这种支持还仅限静态的,如何让文档变得可交互,让文档更有表达性,也是一个值得进一步挖掘的方向。

虽然我注册GitHub有很多年了,但逐渐投入越来越多的时间在上面还是在这几年。尤其是这两年来,我愈发觉得GitHub正在逐渐改变软件开发的常规模式。

尤其是GitHub Copilot的出现,以及一条龙式的开发体验,甚至以后从代码的设计、开发、测试到部署都可以在GitHub网页上完成,这些都是我之前想象不到的。

希望这篇文章能让读者对GitHub有个全新的了解,如果你还没有注册GitHub,那就赶紧去注册一个吧。