抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

使用云服务器当git仓库并与本地文件进行同步

本教程用于实现:通过git将自己的项目部署到自己的云服务器上,让每一步git提交都可以实现文件的更新
可用于博客部署,服务器部署,前端页面部署等。。。。

0.前置

1.linux云服务器

2.云服务器的公网ip

3.git软件

4.自己的电脑

1.安装git

在服务器安装git

在自己的电脑上安装git

(不会的同学直接百度)

查看git是否安装成功:

1
git --version

2.创建服务器上的git用户

打开终端

1
2
3
4
5
6
7
# 创建用户
adduser <用户名>
passwd <用户名>
# 修改用户使用权限
chmod 740 /etc/sudoers
echo "root ALL=(ALL) ALL" >> /etc/sudoers
echo "<用户名> ALL=(ALL) ALL" >> /etc/sudoers

以修改用户使用权限的,如果使用root做操作git的用户的可不必执行最后一行命令

3.建立git仓库

以下操作我以xiaoming为用户名11111111为密码演示

3.1启动管理员权限命令行

1
su root

3.2进入git存放目录

创建用户目录并进入

1
2
mkdir /home/xiaoming
cd /home/xiaoming/

如果有用户目录了,请将用户目录所属用户更改为 自己刚刚创建的用户(例xiaoming)

1
2
sudo chown xiaoming /home/xiaoming
# sudo(使用root权限) chown(设置文件或目录权限) <xiaoming>(所属用户名) </home/xiaoming>(目录或文件路径)

3.3建立git仓库

1
git init --bare <仓库名称>.git

例:git init --bare blog.git

3.4仓库修改权限及归属

1
chown xiaoming -R <仓库名称>.git

修改仓库归属为xiaoming

例:chown xiaoming -R blog.git

4.创建git仓库同步配置文件并创建同步目录

切换到刚创建好的用户

1
su <用户名>

例:su xiaoming

创建git仓库同步文件目录:

1
2
3
4
mkdir /home/xiaoming/blog
# blog为git仓库同步文件的文件夹
# 更改blog的权限为755
sudo chmod 755 /home/xiaoming/blog

vim命令打开文件后,按i键进入编辑模式

1
2
3
4
5
6
vim /home/<用户名>/<仓库名称>.git/hooks/post-receive
# 例:vim /home/xiaoming/blog.git/hooks/post-receive
# 按i键进入编辑模式后,在文件中输入一下内容

#!/bin/sh
git --work-tree=/home/<用户名>/<git仓库同步文件目录> --git-dir=/home/<用户名>/<仓库名称>.git checkout -f

输入完按esc键(键盘最左上角那个),然后输入:wq后回车就完成编辑并保存退出了。

更改此文件的权限为755,所属设置为自己设定的用户

1
2
sudo chmod 755 /home/xiaoming/blog.git/hooks/post-receive
chown xiaoming /home/xiaoming/blog.git/hooks/post-receive

5.测试云服务器git仓库是否可以提交文件

5.1克隆git仓库

到这里,环境切换到自己电脑的终端上

1
2
cd <系统桌面文件夹>
git clone <用户名>@<云服务器ip或域名>:/home/<用户名>/<git仓库名>.git

此时需要输入yes同意,并输入<用户名>对应的<密码>回车即可
如果你cd到的是自己系统的桌面文件夹,那么将会在桌面上看到一个名字为<git仓库名>的新文件夹

5.2往克隆下来的git仓库同步文件夹里随意放一个文件并提交

1
2
3
git add .
git commit -m '提交测试'
git push

输入输入<用户名>对应的<密码>回车
当然有配置ssh-key的同学可以直接跳过

ssh端口不在22的同学,用以下方式进行clone(克隆)

1
2
3
4
5
6
7
8
9
10
11
12
git clone ssh://user@hostname:port/…/xxx.git

user: 用户名

hostname:可以是主机的IP地址也可以是域名,域名会自动通过DNS进行解析

port: 端口号

例:

git clone ssh://xiaoming@hostname:10022/home/xiaoming/test.git

5.3查看服务器git仓库同步文件夹

如果里面有刚刚提交的文件,那么 ——

恭喜你成功在云服务器上建立git仓库并同步文件🎉!

6.拓展

6.0免密码提交git

使用ssh-key链接ssh提交git(可以无需密码就能上传git到自己的服务器仓库),原理也非常简单,就是配置ssh-key进行ssh链接

先测试链接到自己的服务器吧

1
2
3
ssh <用户名>@<服务器域名或ip地址> -p <端口号默认是22>
ssh xiaoming@158.xxx.xxx.xxx -p 22
# 然后输入密码进入

如果成功ok进行下一步

6.1 查看本机是否有ssh-key

打开用户目录的.ssh文件夹

1
2
3
4
5
6
7
8
# Mac
/users/<你的用户名文件夹>/.ssh
# windows
C:/Users/<你的用户名文件夹>/.ssh
# linux(root用户)
/root/.ssh
# linux (普通用户)
/home/<你的用户名文件夹>/.ssh

查看里边是否有id_rsaid_rsa.pub这类文件

id_rsa 是私钥

id_rsa.pub 是公钥

6.1.1 在本机创建ssh-key(如果有请跳过此步骤)

打开终端,在终端输入并执行一下内容

1
2
# 执行一下内容,一直按回车键直到执行完毕
ssh-keygen -t rsa -C "你的用户名(可以自定义,用于标记,不要 中文)"

执行完后查看是否生成ssh-key文件 [查看本机是否有ssh-key](#6.1 查看本机是否有ssh-key)

6.2 添加通行证

6.2.1

连接到服务器

1
2
3
ssh <用户名>@<服务器域名或ip地址> -p <端口号默认是22>
ssh xiaoming@158.xxx.xxx.xxx -p 22
# 然后输入密码进入

切换到自己的用户

1
su xiaoming

在服务器端用户目录的.ssh文件夹下新建authorized_keys文件

1
2
cd /home/<用户名>/.ssh
touch authorized_keys

如果没有.ssh文件夹请在用户目录下新建

1
2
3
4
5
6
cd /home/<用户名>/
mkdir ./.ssh
# 进入.ssh文件夹
cd ./.ssh
# 新建authorized_keys文件
touch authorized_keys

6.2.2

将本机的id_rsa.pub内容复制到authorized_keys文件中

1
2
3
vim ./authorized_keys
# 按下i键进入编辑模式,将id_rsa.pub里的内容复制进来
# 按下esc键后,输入:wq(:wq 是保存并退出的指令) 回车

到此文件更改完毕

6.3 修改通行证文件权限归属

1
2
3
4
# 修改文件权限为 仅当前用户读写
sudo chmod 600 ./authorized_keys
# 修改文件归属为当前用户
sudo chown <用户名> ./authorized_keys

6.4 使用ssh-key链接你的服务器

先断开此次连接ctrl+C键,或直接关闭终端窗口

再次进行连接

1
2
ssh <用户名>@<服务器域名或ip地址> -p <端口号默认是22>
ssh xiaoming@158.xxx.xxx.xxx -p 22

将会提示你是否使用密钥登陆,输入yes回车即可

如果成功连接到服务器 那么恭喜🎉🎉🎉 你的git仓库提交时就不需要密码了

无密码连接成功后可以再次测试git仓库文件提交

评论