git

2021/11/10

# 安装

wget https://github.com/git/git/archive/refs/tags/v2.33.0.tar.gz

tar -zxvf v2.33.0.tar.gz

cd git-2.33.0

yum install autoconf automake libtool

make configure

mkdir /root/git
./configure --prefix=/root/git

yum install zlib-devel

make

make install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
vi ~/.bash_profile

# ~/.bash_profile 配置环境
export PATH=/root/git/bin:$PATH
export PATH=/root/git/libexec:$PATH
export PATH=/root/git/share:$PATH

source ~/.bash_profile

# sudo寻找命令:/sbin:/bin: /usr/sbin: /usr/bin
# 如果没有sudo权限可以开软链 fromOldLink toNewLink
ln -s /root/lib/git/bin/git /usr/bin/git
1
2
3
4
5
6
7
8
9
10
11
12

# 免密pull

# 服务器git免密登录

  • 服务器创建本地仓库
    # 添加一个名为 git 的用户
    adduser git
    # 设置 git 用户的密码
    passwd git
    # 提权
    sudo visudo
    # 在文件里写入
    git ALL=(ALL:ALL) ALL
    # 保存提出,然后切换到 git 用户
    su git
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
  • 本地使用git身份登录服务器
    ssh -v git@10.14.xxx.xxx
    
    # 输入密码
    
    1
    2
    3
  • 服务器创建免密登录(公私钥)
    # 进入用户主目录
    cd ~
    
    # 创建 .ssh 目录
    mkdir .ssh && cd .ssh
    
    # 创建 authorized_keys 文件
    touch authorized_keys
    
    1
    2
    3
    4
    5
    6
    7
    8
  • 在本地起一个终端,获取本地公钥
    cat ~/.ssh/id_rsa.pub
    
    1
  • 关联
    # 登陆服务器,将获取的公钥写入服务器的 authorized_keys
    echo "这里修改为你的公钥内容" >> ~/.ssh/authorized_keys
    
    # 给相关文件添加执行权限
    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    
    1
    2
    3
    4
    5
    6
  • 完成远程免密登录
    ssh -v git@10.14.xxx.xxx
    
    1

# 服务器git仓库

  • 生成git仓库:git@10.14.233.17:/home/www/website/blog.git
# 进入代码仓库目录
cd /home/www/website

# 赋予 git 用户权限
sudo chown git:git /home/www/website

# 创建代码目录
mkdir blog.git

# 进入代码目录
cd blog.git

# 初始化
git init --bare .
1
2
3
4
5
6
7
8
9
10
11
12
13
14

git init --bare 初始化仓库只包括版本控制文件

  • 借助一个 hooks,在有代码提交到该仓库的时候,将提交的代码迁移到其他目录
    cd hooks
    
    # 创建并编辑 post-receive 文件
    vim post-receive
    
    # 这里是 post-receive 写入的内容
    
    #!/bin/bash
    git --work-tree=/home/www/website/blog checkout -f
    
    # 赋予执行权限
    chmod +x post-receive
    
    # 退出目录到 blog.git 同级目录并创建文件
    cd ../../ && mkdir blog
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
  • 推到远程仓库
    git push -f git@10.14.233.17:/home/www/website/blog.git master
    
    1
  • 可以把上传文件存放到deploy.sh文件
上次更新: 11/1/2024