我是用什么来托管博客源码的?

这篇文章也算是给我朋友专门写的了

本文内容较多,建议打开目录方便按需阅读

起因

几天前,我和我一个朋友聊天的时候,得知他要把博客转成 Hexo (他以前用的是 WordPress)

然后问了一下,他用的 OneDrive 同步的博客源码。

起初我也是用的网盘一类的托管的博客源码,但在某次同步的时候,坚果云给我推送了这篇文章

早期,部分工程师选择使用坚果云同步代码,也给我们提了很多有建设性的建议和想法。现在,国内的代码托管服务已经完善,我们不再建议用户使用坚果云同步代码文件。

部分用户反馈,使用坚果云同步代码,会有潜在的权限问题,造成同步失败。相比坚果云,这些代码托管服务和工具在代码同步方面更加专业,建议工程师团队使用。

国内服务:

  • coding.net
  • csdn
  • 开源中国

国外服务:

  • bitbucket(免费支持私有)
  • gitlab
  • github

并且网盘一类的并不适合用来同步这种东西,谁知道会不会哪天不小心来个 rm -rf * 了呢
所以在同步源码这方面,尽量避免用这种网盘之类的,以免出现不小心删库的情况

解决方案

用 Git

GitHub 托管源码

我这里用的是 GitHub 来托管,可以在相关项目上看到提交记录,每次提交也会比对不同的地方
妈妈再也不用担心我不小心删库了!

生成 SSH 公钥并添加到 GitHub

首先,在电脑上生成一个 SSH 公钥

1
ssh-keygen -m PEM -t rsa

一路回车即可
之后便可以在用户目录下的 .ssh 文件夹中找到 id_rsaid_rsa.pub 两个文件(这两个文件在上面的命令执行中也能看到位置)。
其中 id_rsa 是私钥文件,妥善保存
id_rsa.pub 是公钥文件,将其中的内容复制下来

打开 https://github.com/settings/keys ,登陆 GitHub 账户,New SSH KeyTitle 可以自己想着填(
Key 部分填入刚刚复制的内容

然后点击 Add SSH Key

测试 SSH Key 是否可用

1
ssh -T git@github.com

Hi Leao9203! You’ve successfully authenticated, but GitHub does not provide shell access.

如果出现这类消息,即证明 SSH 公钥已成功被 GitHub 接受。

新建一个项目

打开 https://github.com/new ,填入一些内容。

Repository name 为项目名称,可以填入诸如 BLOG-SourceBlog 之类的,因人而异。
Description 为项目介绍,看心情填(

  • Public 是将这个项目设置为公开项目,别人可以随意访问这个项目的内容,建议不要设置
  • Private 是将这个项目设置为私有项目,别人无法访问这个项目,推荐设置

填完之后确认创建项目即可。( Create repository )

推送源码到项目

首先把项目拉取下来

1
git clone git@github.com:你的项目地址

然后把博客源码复制进去,注意尽量不要用移动,以免出现错误导致博客整体被扬了(

1
2
3
git add .
git commit -m "${推送消息}"
git push

${推送消息}是推送时附带的消息,会显示在 commit 记录上,可自行修改为其他内容
如果你的博客不是全新的博客,可能会有一个 warning ,直接忽视掉就行

推送之后就可以在项目页面看到你的推送了

Coding 托管源码

如果不想用 GitHub 托管源码,可以用 Coding 托管,同样是大厂的(腾讯的
生成密钥部分就略过了,可以参考上面写的,写一下添加 SSH 公钥部分。

添加 SSH 公钥到 Coding

打开 https://conm.coding.net/user/account/setting/keys ,登陆 Coding 账户,新增公钥,名称随便填,也可以不填
公钥内容 是在 SSH 公钥生成部分复制的内容。
有效期 Coding 默认是三个月,也可以自定义更长时间,或者直接勾上永久有效
填完之后,确认即可

测试 SSH Key 是否可用

1
ssh -T git@e.coding.net

CODING 提示: Hello 裡傲Leao, You’ve connected to coding.net via SSH. This is a Personal Key.
裡傲Leao,你好,你已经通过 SSH 协议认证 coding.net 服务,这是一个个人公钥.

如果出现这类消息,即证明 SSH 公钥已成功被 Coding 接受。

创建一个项目

回到 Coding 网站的主页,右上角有一个 创建项目

项目模板选择 代码托管

项目名称和项目标识也是按照需求填,例如

项目名称:MyBLOG
项目标识:myblog

然后点 完成创建

创建一个代码仓库

创建完项目之后,默认会跳转到这个项目,点击左边的 代码仓库 ,右上角有 创建代码仓库
可以按照这个填,也可以自己按需求改改

仓库类型:GIT仓库
仓库名称:BLOG-Source
是否开源:私有仓库

然后点击 完成创建

推送源码

在创建完代码仓库之后,会跳到这个代码仓库的页面

复制 SSH 的项目地址,然后把项目拉取下来

1
git clone git@e.coding.net:你的团队名/myblog/BLOG-Source.git

然后把博客源码复制进去,注意尽量不要用移动,以免出现错误导致博客整体被扬了(
这段话属实「多路复用」了

1
2
3
git add .
git commit -m "${推送消息}"
git push

${推送消息}是推送时附带的消息,会显示在 commit 记录上,可自行修改为其他内容
(跟上面推送到 GitHub 是一个操作)

推送之后刷新一下页面,就能看到推送了

其他平台托管博客源码的思路

  1. 添加 SSH 公钥到平台
  2. 创建一个代码仓库
  3. 推送博客源码到代码仓库
1
2
3
4
5
git clone 代码仓库的地址

git add .
git commit -m "${推送消息}"
git push

后记

用 git 之类的托管代码,主要的优势就是在出问题时能很方便的 rollback,要是用网盘的话,哭都没地方哭(

参考资料

  1. Testing your SSH connection - GitHub Docs