搭建自己的中转git服务器,解决git速度慢的问题

背景

有的时候将个人博客push上github仓库,1-2kb/s的速度看着脑壳疼,怎么办呢?

要是有个连接Github速度快的云服务器帮助我们推送则就很爽了.

开始操作!

操作流程

  • 在服务器建立自己的中转git仓库
  • 在本地副本中链接我们服务器的中转git仓库
  • 在中转git仓库链接我们的github仓库
  • 在我们的服务器上设置自动推送,让Linux系统能够自动推送我们的commit
  • (可选的懒人项)给本地配置推送脚本,一条命令解决推送问题

Step.1 在服务器建立自己的中转git仓库

  • 设置git账户以及仓库(以Ubuntu为例)
    • 我设置的账户名为"git"
#添加用户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密钥
    • 如果还没有生成密钥,利用ssh-keygen生成
su git
mkdir ~/.ssh
touch ~/.ssh/id_rsa.pub
vim ~/.ssh/id_rsa.pub
#粘贴我们本地的SSH密钥进去,保存即可

Step.2 在本地副本中链接我们服务器的中转git仓库

  • 首先保证本地有一份完整的副本(即与github相同版本的文件)
  • 把这份副本传到中转git仓库中
git remote add server git@服务器IP:/home/git/myBlog.git
  • 推送(注:在本地仓库中执行,不是服务器端)
git push server
#如果提示没有设置upstream,则用下面的命令
	git push orgin或者master server

Step.3 在中转git仓库链接我们的github仓库

  • 给git用户生成一个SSH密钥(也用ssh-keygen),在Github中添加
  • 把这份副本传到中转git仓库中
git remote add github (github提供的链接,注意是SSH链接)
  • 推送
git push github master

Step.4 在我们的服务器上设置自动推送,让Linux系统能够自动推送我们的commit

cd /home/git/myBlog.git
git push github master
  • 给上传脚本赋予执行权限
chmod a+x updateBlog.sh
  • 利用Linux的Crontab命令(没有的话命令安装一下)
crontab -e
# 选择编辑器(选择你觉得简单的)
# 加入下面的命令,*/2即为2小时推送一次,使用命令行bash执行updateBlog.sh脚本
# 详细配置请百度Crontab命令参数设置
0 */2 * * * bash /home/git/script/updateBlog.sh

Step.5 (可选的懒人项)给本地配置推送脚本,一条命令解决推送问题

#加入push时间的支持
time=$(date "+%Y-%m-%d-%H:%M:%S")
#进入仓库根目录
cd /Users/kingtous/Kingtous.github.io-master
#添加更改(删除的话需要通过 git rm xxx)
git add *
#commit更改
git commit -m "Update At "$time
#向中转服务器push更改
git push server
  • 赋予执行权限
chmod a+x updateBlogUsingServer.sh

至此全部配置完成,下次我们对仓库做完更改后,直接执行updateBlogUsingServer.sh或者git push server,推送上我们的服务器后,服务器就可以自动在指定的时间周期内向Github推送我们的更改,岂不美哉?(比如这篇博客就是自动推送的(?))

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值