PeaceSheep's blog PeaceSheep's blog
首页
  • 分类
  • 标签
  • 归档
相关链接
提建议&咨询&赞赏
GitHub (opens new window)

PeaceSheep

以最简洁、易懂的话解决问题
首页
  • 分类
  • 标签
  • 归档
相关链接
提建议&咨询&赞赏
GitHub (opens new window)
  • 01 说明
  • 环境安装与配置

    • ubuntu换源
    • centos安装配置docker
    • k8s介绍及安装教程
    • github actions自动部署前端项目
    • 服务器创建git仓库,部署自己的博客
      • 1. 安装git
      • 2. 创建git用户和git用户组
      • 3. 禁止git登录
      • 4. 创建登录信息
      • 5. 初始化git仓库
      • 6. 验证
      • 7. 设置存储路径
      • 遇到的问题
        • 1. error: refusing to update checked out branch: refs/heads/master
    • 使用python批量管理linux设备
    • 关于如何使用机房电脑批量烧录U盘的奇思妙想
    • 自建Zerotier节点
    • ubuntu安装g++
    • conda从古老版本升级
    • openkylin国产麒麟操作系统安装zerotier
    • nodejs、yarn安装
  • 常用命令与配置文件

  • 常用代码

  • 常用操作
  • 环境安装与配置
PeaceSheep
2022-03-18
目录

服务器创建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
1
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 
1
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
1
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?

参考文章

https://www.cnblogs.com/shijiaoyun/p/9663396.html (opens new window) https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664 (opens new window)

编辑 (opens new window)
#git
上次更新: 2025/05/28, 16:40:57
github actions自动部署前端项目
使用python批量管理linux设备

← github actions自动部署前端项目 使用python批量管理linux设备→

最近更新
01
愚蠢错误收集
05-29
02
ubuntu安装g++显示已有但是输入g++又找不到命令
04-15
03
使用cloudflare-r2搭建webdav
04-08
更多文章>
Theme by Vdoing | Copyright © 2022-2025 PeaceSheep
冀ICP备2022004632号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式