linux远程服务器配置git版本控制
1、登录linux服务器
2、sudo apt-get install git
sudo apt-get install ssh
3、服务器创建一个用户名为ceshi的用户
sudo adduser ceshi
4、按照提示创建完毕后,进入刚创建好的ceshi文件夹下,目录在/home/ceshi/,进入这个目录
cd /home/ceshi
创建.ssh文件夹
mkdir .ssh
5、进入.ssh文件夹
cd .ssh
touch authorized_keys
6、在客户端打开Git Bash,执行:
ssh-keygen -t rsa
按提示输入用户名:ceshi
完成后,会生成2个文件: ceshi和ceshi.pub,分别是私钥和公钥
7、cd ~
pwd
查看当前客户端的工作目录,找到工作目录下的.ssh文件夹,把私钥复制到这个文件夹下
8、如果是第一次搭建,还要新建一个config的文件,并写入以下内容:
host git-server user server hostname 119.29.147.xxx port 22 identityfile ~/.ssh/Mike
- 注意除第一行,其余要缩进一个tab
- 这里的Mike替换为自己之前创建key时输入的用户名
- hostname 后面替换为你的服务器IP地址
9、服务器将公钥追加到服务器的authorized_keys文件中
vim authorized_keys
之后esc
:wq保存退出
10、进入用户文件夹下
cd /home/ceshi
创建一个文件夹text
mkdir test
进入这个文件夹
cd test
git init --bare test.git
11、在客户端clone远程的代码仓库
git clone git-server:/home/ceshi/test/test.git
12、会在gitclient/test/下创建一个名为test的文件夹(.git会被省略)。
我们可以做一个测试,在gitclient/test/test文件夹中添加一个文件,并提交。
git push git-ceshi:/home/ceshi/test/test.git master
13、如果报错,一般是权限问题,去服务器端git库目录下,也就是test文件夹下,然后输入命令
sudo chown -R cl90326:cl90326 test.git
14、git push git-ceshi:/home/ceshi/test/test.git master
成功!
15、将git服务器内容同步到项目服务器上
cd /home/ceshi/ceshi.git
cd hooks //这里我们创建post-receive文件
vim post-receive //在该文件里输入以下内容
#!/bin/bash git --work-tree=/var/www/html/git checkout -f
//保存退出后,将该文件用户及用户组都设置成git
chown cl90326:cl90326 post-receive
//由于该文件其实就是一个shell文件,我们还应该为其设置可执行权限
chmod +x post-receive
chown -R cl90326:cl90326 /var/www/html/git/