系统版本:14.04 (新装纯净版)
git 版本: 1.9.1
第一步:安装 git
sudo apt-get install git
第二步:添加git用户及权限
// 创建一个git用户,分配目录、读写执行权限等设置
- sudo adduser git
- id git // 检测是否有此用户
- useradd git -g git -d /home/git -g 用户分组 , -d 用户所属目录;系统没有
在git用户所属目录下即创建的/home/git目录下创建.ssh目录,并执行
- chmod 700 -R .ssh
- chown -R git:git git
第三步:禁用shell登录
编辑 /etc/passwd 文件 ,将内容
it:x:1000:1000:,,,:/home/git:/bin/bash
改为:
it:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
第四步:服务器添加裸仓库
sudo git init --bare sample.git
裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区。要改变仓库归属
sudo chown -R git:git sample.git
第五步:创建证书免密操作
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
如果没有该文件则自行创建
第六步:克隆服务器仓库
git clone git@ip:/git/sample.git
如果没有第五步则会提示输入git用户密码
其他 :
在服务仓库 hooks目录下 创建文件 post-receive (如果不存在则新建),内容如下 :
#!/bin/sh
unset GIT_DIR
DeployPath=/var/www/html/
cd $DeployPath
echo '====auto update start====='
git init
git remote add origin /home/git/testh5.git
git clean -df
git pull origin master
echo '====auto update end====='
二 、分支操作
//删除本地分支
git branch -D br
// 上传本地分支到为远程分支
git push origin br
// 删除远程分支
git push origin :br (origin 后面有空格)
遇到问题
一、git clone报错
fatal: Could not read from remote repository.
有可能是id_rsa_.pub的公钥与服务不匹配,或者说服务器被重置的情况。
这时需要重新更新id_rsa.pub
二、hooks报错
// 参考步骤七
remote: error: insufficient permission for adding an object to repository database ./objects
建议编辑仓库目录权限为 777