使用 Git 工具方便的部署网站到远程服务器上。
本地安装 Git
没特殊需求直接官网下载相应版本一路 next 即可
远程服务器(CentOS 为例)安装 Git
1. 安装 git,执行如下命令
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install -y git
2. 创建专用用户并配置仓库
useradd git
passwd git #直接输入密码并确认
先用 su git
命令切换到刚创建的用户
cd /home/git/
mkdir -p projects/web #网站项目的目录,与Nginx目录一致
mkdir repos && cd repos
git init --bare web.git #初始化创建一个仓库
创建hook函数连接项目地址与Git仓库地址
cd web.git/hooks
vi post-receive
输入以下内容:
#!/bin/sh
git --work-tree=/home/git/projects/web --git-dir=/home/git/repos/web.git checkout -f
添加完毕后修改权限
chmod +x post-receive
用 exit
命令退出到root账户
chown -R git:git /home/git/repos/web.git
至此,远程仓库创建完毕
3. 设置用户权限和公钥
为了安全禁用git用户的Shell 登录权限,执行以下命令:
cat /etc/shells #查看 git-shell 是否在登录方式里面
which git-shell #查看路径
vi /etc/shells #添加 which git-shell 中显示的路径,通常为 /usr/bin/git-shell
修改 /etc/passwd 中的权限,将 git:x:1000:1000::/home/git:/bin/bash
修改为 git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
接下来配置公钥,避免每次上传都要输入密码,本地使用 git 进入 cd /.ssh
目录,输入
ssh-keygen -t rsa -C "your_email@youremail.com" #一般备注为自己的邮箱
将生成公钥上传到服务器上的 /home/git/.ssh
目录
同步本地项目到远程仓库
进入要同步的本地项目路径,例如 /public
cd public/
git init #初始化仓库
git remote add [分支名称] git@server_ip:/home/git/repos/web.git #首先关联本地仓库和远程仓库
若修改了远程服务器端口(例如 1234 )则使用以下命令
git remote set-url [分支名称] ssh://git@server_ip:1234/home/git/repos/web.git
提交项目
git status #查看当前本地项目的变化情况
git add . #要提交文件夹的名称,"."表示将所有文件添加到跟踪列表
git commit -m "first commit" #提交信息
git pull --rebase [分支名称] master #获取远程库与本地同步合并,防止多人项目出错
git push -u [分支名称] master
如果你认为这篇文章还不错,可以考虑为我充电 ⚡️