背景
有的时候将个人博客push上github仓库,1-2kb/s的速度看着脑壳疼,怎么办呢?
要是有个连接Github速度快的云服务器帮助我们推送则就很爽了.
开始操作!
操作流程
- 在服务器建立自己的中转git仓库
- 在本地副本中链接我们服务器的中转git仓库
- 在中转git仓库链接我们的github仓库
- 在我们的服务器上设置自动推送,让Linux系统能够自动推送我们的commit
- (可选的懒人项)给本地配置推送脚本,一条命令解决推送问题
Step.1 在服务器建立自己的中转git仓库
1
2
3
4
5
6
7
8
9
10
11
| #添加用户git
useradd git
#给git设置密码
passwd git
#设置主目录
mkdir /home/git
chown -R /home/git git
#建立空仓库(仓库文件夹我取名为myBlog.git(注意这是文件夹) (我是用来管理博客的))
mkdir /home/git/myBlog.git
cd /home/git/myBlog.git
git --bare init
|
- 让用户git信任我们本地,添加我们本地的SSH密钥
1
2
3
4
5
| su git
mkdir ~/.ssh
touch ~/.ssh/id_rsa.pub
vim ~/.ssh/id_rsa.pub
#粘贴我们本地的SSH密钥进去,保存即可
|
Step.2 在本地副本中链接我们服务器的中转git仓库
- 首先保证本地有一份完整的副本(即与github相同版本的文件)
- 把这份副本传到中转git仓库中
1
| git remote add server git@服务器IP:/home/git/myBlog.git
|
1
2
3
| git push server
#如果提示没有设置upstream,则用下面的命令
git push orgin或者master server
|
Step.3 在中转git仓库链接我们的github仓库
- 给git用户生成一个SSH密钥(也用ssh-keygen),在Github中添加
- 把这份副本传到中转git仓库中
1
| git remote add github (github提供的链接,注意是SSH链接)
|
Step.4 在我们的服务器上设置自动推送,让Linux系统能够自动推送我们的commit
- 新建上传脚本,保存(根据个人设置更改,至于取名的话我取名为updateBlog.sh)
1
2
| cd /home/git/myBlog.git
git push github master
|
1
| chmod a+x updateBlog.sh
|
- 利用Linux的Crontab命令(没有的话命令安装一下)
1
2
3
4
5
| crontab -e
# 选择编辑器(选择你觉得简单的)
# 加入下面的命令,*/2即为2小时推送一次,使用命令行bash执行updateBlog.sh脚本
# 详细配置请百度Crontab命令参数设置
0 */2 * * * bash /home/git/script/updateBlog.sh
|
Step.5 (可选的懒人项)给本地配置推送脚本,一条命令解决推送问题
- 编写自动上传脚本(我保存的文件名为updateBlogUsingServer.sh)
1
2
3
4
5
6
7
8
9
10
| #加入push时间的支持
time=$(date "+%Y-%m-%d-%H:%M:%S")
#进入仓库根目录
cd /Users/MetaNetworks/MetaNetworks.github.io-master
#添加更改(删除的话需要通过 git rm xxx)
git add *
#commit更改
git commit -m "Update At "$time
#向中转服务器push更改
git push server
|
1
| chmod a+x updateBlogUsingServer.sh
|
至此全部配置完成,下次我们对仓库做完更改后,直接执行updateBlogUsingServer.sh或者git push server,推送上我们的服务器后,服务器就可以自动在指定的时间周期内向Github推送我们的更改,岂不美哉?(比如这篇博客就是自动推送的(😁))