创建git服务器
1、安装git
yum install -y git
2、创建git用户
adduser git
3、初始化Git仓库
git init --bare sample.git
说明:
1)sample.git为项目仓库目录,按习惯将代码仓库目录以.git后缀命名,
2)git克隆目录即为:git@servername:/srv/sample.git,“@”前面的git为第2步添加的git帐户名,servername服务器域名或ip,“:”后面为git仓库在服务器上的路径
chown -R git:git sample.git
用root用户操作时需注意,将此仓库路径上的目录和文件所有者全部设为git
4、需要登录的用户生成ssh密钥和公钥
执行:ssh-keygen
生成文件:id_rsa 、id_rsa.pub
ssh说明:
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
ssh公钥生效需满足下面条件:
1) .ssh目录的权限必须是700
2) .ssh/authorized_keys文件权限必须是600
3) .ssh/id_rsa文件权限必须是600
.ssh目录所有者为要免密登录的用户,注意用户权限
5、收集名密登录用户公钥
收集所有需要登录的用户的公钥(id_rsa.pub),在服务器git用户目录下,把所有公钥导入到/home/git/.ssh/authorized_keys文件里(若不存在则手动添加),一行一个公钥字符串。
6、禁用shell登录
创建的git用户不允许登录shell,通过编辑/etc/passwd文件完成
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
7、 克隆项目到本地
git clone git@server:/srv/sample.git .
"."表示当前目录
8、客户端使用
1)前面1-6步创建git服务器
2)在用户目录记录.ssh目录:C:\Users\jingyu\.ssh
3)将生成的公钥、私钥复制到.ssh目录下
4)sourcetree设置:
进入 “工具》选项》一般 ”:
ssh客户端配置/ssh密钥 选中id_rsa
ssh客户端选择OpenSSH
5)克隆项目
6)与svn结合:
公司项目服务器用svn做仓库,git为开发者本地使用:
a)checkout svn项目,创建为svn分支
b)svn分支只用来同步svn代码,同步一次提交一次svn分支节点
c)开发时另建开发分支dev
d)需要提交svn时,才将开发分支dev合并到svn分支,
e)提交svn到远程代码仓库,同时提交git的svn分支保存此节点