[传送门]-自建git服务

0.忍无可忍

博主在本地写好代码就直接git push到github上去,然后在web服务器上直接git pull更新web代码,这种模式用起来爽极了。但是最近两天,在web服务器上git pull的频繁失败,发现自己的腾讯云VPS直接ping不通github.com了,这更本无法忍受,因此决定直接在VPS上把git服务搭建起来。

参考Git 服务器搭建和Linux使用ssh公钥实现免密码登录Linux

1.Git Server On VPS(CentOS)

  • 安装git,当然博主的CentOS上已经有这个环境了。
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
# yum install git
  • 创建git用户和用户组
# groupadd git
# useradd git -g git
  • 安全起见,修改/etc/passwd把git用户的shell改为git-shell

  • 设置*** /home/gitrepo/ ***为git仓库

# mkdir /home/gitrepo
# chown git:git /home/gitrepo/
  • 新建一个空仓库,并将其所属用户修改为git
# cd /home/gitrepo
# git init --bare wuaiwulu2.git
# git chown -R git:git wuaiwulu2.git
  • 稍后从github把代码放进空仓库

2.Workspace On Localhost(Archlinux)

  • 生成rsa公钥/密钥对
$ cd ~/.ssh/
$ ssh-keygen
  • 将得到的id_rsa.pub用ftp或者scp上传到Git Server备用

3.Web Server On VPS(CentOS)

  • 实际上博主的Web Server和Git Server是同一个

  • 生成rsa公钥/密钥对

# cd ~/.ssh/
# ssh-keygen
  • 将生成的id_rsa.pub也复制到Git Server上

4.Git Server On VPS(CentOS)

  • 授权登陆使用git
# cd /home/git
# mkdir .ssh
# chmod 755 .ssh
# cat id_rsa.pub.soar >> .ssh/authorized_keys
# cat id_rsa.pub.root >> .ssh/authorized_keys
# chmod 644 .ssh/authorized_keys

4.转移文件开始下一行代码

然后就可以愉快地git clone git push git pull啦

$ git clone [email protected]:/home/gitrepo/wuaiwulu2.git
# git clone git@localhost:/home/gitrepo/wuaiwulu2.git

你可能感兴趣的:([传送门]-自建git服务)