/ git

git-server

这里使用 ssh 需要,需要添加 public key 到服务器。

部署代码使用

server

sudo apt-get install git

# 新建代码接受仓库
mkdir test.git && cd test.git
git init --bare

# 让仓库接收代码提交
git config receive.denyCurrentBranch ignore

# 设置服务器端更新钩子
vim hooks/post-receive

将如下内容复制到文件中

#!/bin/sh
GIT_WORK_TREE=/home/john/project/test git checkout -f
chmod +x hooks/post-receive

这样,每次从客户端的 master 分支 push 代码到服务器,都会在 /home/john/project/test 下生成最新的代码,需要注意的是首次推送不会生成最新代码,需要多推送一次。

client

git remote add server git@192.168.1.110:/home/john/repos/test.git
git push server

其中,server 是自定的主机名,john 是可以 ssh 连接到服务器用户,192.168.1.110 是服务器IP,repos/test.git 就是服务器仓库目录。

注意

如果服务器的 sshd 更改了默认端口 22,架设为 25000,那么,上述命令就要变更为

git remote add server ssh://john@192.168.1.110:25000/home/john/repos/test.git

因为 ssh 不是默认 22 端口,所以需要明确指出要使用的协议和端口:

1.添加了 ssh://
2.添加了端口号 25000