在日常开发的过程中有时需要用到第三方的云服务器,将本地写好的代码上传到服务器运行起来。代码可以通过git仓库上传,通过git仓库也能方便地管理多人协同开发的代码。本文介绍如何在云服务器上搭建个git仓库来同步本地的代码。
云服务器像阿里云和腾讯云,会提前预装好常用的工具。如果暂时没有云服务器的,也可以用本地装有ubuntu系统的电脑当成服务器进行操作。
ssh登录
云服务器一般都可以直接进行ssh登录,若是自己的ubuntu电脑,则可能需要先安装 OpenSSH Server,否则ssh会登录失败
sudo apt-get install openssh-server
然后查看服务器的ip地址,可看到服务器地址为172.16.202.129
,之后都将使用这个地址进行登录
本地打开命令行工具,ping一下服务器确认能否ping通
通过ssh登录,此处的hd为服务器管理员用户名
ssh hd@172.16.202.129
登录成功后显示
安装git
服务器安装git(一般的云服务器都会预先安装好git)
sudo apt-get install git
查看git是否成功安装
创建git用户
创建一个git用户,专门用来运行git服务
sudo adduser git
输入git的密码,然后默认一路敲回车
此时便在服务器创建了git用户
我们可以尝试先退出hd用户,换成git登录
登录成功后的用户为git
创建正书登录
切换回之前的管理员用户
在 /home/git/
目录下创建 .ssh 文件夹
sudo mkdir .ssh
在.ssh文件夹中创建authorized_keys文件
将本地的id_rsa.pub 内容保存到authorized_keys文件中
初始化Git仓库
选定一个目录作为仓库,在/srv
目录下创建git目录,以后所有的仓库都保存在这个目录下
在/srv/git
目录下输入命令创建一个裸仓库
sudo git init --bare demo.git
服务器上的仓库通常都以.git结尾,然后把owner改为git
sudo chown -R git:git demo.git/
禁用ssh登录
出于安全考虑,git用户不允许ssh登录,修改配置文件/etc/passwd
将
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
试着再用命令行登录git用户,发现已经不能登录了
本地克隆仓库
在命令行输入命令
git clone git@172.16.202.129:/srv/git/demo.git
可以看到刚刚在服务器创建的裸仓库已经clone到本地了
试着在demo目录下创建一个文本文件,然后提交到服务器
创建同步代码的用户
登录服务器,再创建个用户
sudo adduser moshuqi
然后用这个用户进行登录,在用户的根目录下新建个文件夹code,专门用来保存代码
在code目录下拷贝仓库
git clone /srv/git/demo.git/
拷贝完成后即可看到我们之前在本地提交的文本文件
其他
本地的id_rsa.pub信息若没有保存在authorized_keys里,同步代码和提交代码时会要求输入用户密码。
有时候即使服务器加上了id_rsa.pub信息也会要求输入密码,则有可能是authorized_keys文件的owner没有修改成git。
当有多人需要用到仓库时则把多份id_rsa.pub信息依次保存到authorized_keys里即可。
—— End ——