服务器创建git仓库,部署自己的博客
本文介绍如何在服务器上创建git仓库,并在本地克隆、同步等。
为了方便部署博客,我需要在服务器搭建git仓库,这样以后每次都直接push就行了。如你所见,这篇博客就是我在部署博客的时候写的。
# 1. 安装git
运行yum install git
安装git。我之前认为需要类似于服务器版的git,后来发现不需要,就是我们常用的那个git。
# 2. 创建git用户和git用户组
groupadd git
# 创建git 用户组
adduser git -g git
# 3. 禁止git登录
这一步是为了让git用户只能使用git clone等命令,而不能用ssh登录服务器。
修改/etc/passwd
文件,将
git:x:1001:1001:,,,:/home/git:/bin/bash
修改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
。
# 4. 创建登录信息
这一步是为了创建git使用的账号。
mkdir /home/git/.ssh $ chmod 700 /home/git/.ssh
touch 700 /home/git/.ssh/authorized_keys
chmod 600 /home/git/.ssh/authorized_keys
2
3
4
5
注意以上命令不要用sudo创建,如果已经使用了,或者发现添加了公钥,登录还是要密码,可以使用
sudo chown -R git:git /home/git/.ssh/
来更改拥有者。
在本地电脑运行ssh-keygen -t rsa -C "[email protected]"
,会在用户目录下创建.ssh文件夹,将.ssh/id_rsa.pub文件里面的内容拷贝到/home/git/.ssh/authorized_keys
。如果有多台电脑需要登录,则将每个电脑的公钥拷贝进去,一行一个。
# 5. 初始化git仓库
cd /srv
mkdir gitrepo
chown git:git gitrepo/
cd gitrepo
git init --bare blog.git
# 我是为了搭建博客,你可以根据需要改成其他的名字,.git结尾只是一种规范,并非强制要求
chown -R git:git project.git #将仓库所属用户改为git
2
3
4
5
6
7
8
9
10
11
12
13
关于`git init -bare`
该命令可以生成一个“裸”git仓库,可以把该仓库用作远程仓库,可以正常push,但无法在该仓库直接进行git操作。如果不设置钩子,进入该文件夹也看不到提交的文件。一般作为服务端的git仓库都用该命令生成。
# 6. 验证
在本地运行
git clone git@服务器地址:/srv/gitrepo/blog.git
# 7. 设置存储路径
这样的操作服务器已经可以当作git仓库用了,但是我们的文件在服务器上不可见,可以按照如下方法:
可以在远程仓库的hooks目录下新建文件post-receive
。
内容为:
#!/bin/bash
git --work-tree=/home/www checkout -f
2
然后添加权限:
chown git:git post-receive
chmod +x post-receive
其中的目录即为你要放置文件的路径。注意git用户需要有访问权限,不然会permition denied。
# 遇到的问题
# 1. error: refusing to update checked out branch: refs/heads/master
让我看看是谁创建仓库的时候没有加--bare
?
- 02
- containerd高版本换源,containerd换源无效问题11-07
- 03
- apt-get使用代理11-05