1、yum install -y git
2、adduser git
3、cd /data/git
没有则创建该目录
git init --bare test.git;创建一个裸仓库,没有工作区,不需要
chown -R git:git test.git
4、客户端生成rsa
打开git bash
ssh -keygen -t rsa -C "test@test.com"
在.ssh目录下有两个文件:id_rsa,id_rsa_pub;前者是私钥,后者是公钥;
5、服务器开启rsa验证
vi /etc/ssh/sshd_config
打开
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
6、cd /home/git
mkdir .ssh
touch authorized_keys
echo '第四步中id_rsa.pub内的公钥' >>authorized_keys
注意,一行一个公钥,一个公钥对应一个用户!
7、禁用git shell
vi /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
8、客户端操作
(1)git clone git@192.168.0.4:/data/git/test.git
不需要再输入git 密码了
(2)git remote 此命令用于管理远程主机名,此命令在没有参数的情况下可以列出所有主机名。
(3)git fetch 此命令可以将远程版本库的更新,更新到本地库
(4)git push
此命令用于将本地分支的更新推送到远程主机。
语法:git push 远程主机名 本地分支名:远程分支名
如果省略远程分支名,则表示将本地分支推送与存在最终关系的远程分支,如果远程分支不存在,则会被新建。
如:git push origin master,表示将本地master分支推送到origin主机的master分支上
此命令用于将本地分支的更新推送到远程主机。
如果省略本地分子名,则表示要删除远程主机中分支,如git push origin : master,则表示删除origin主机中master分支
(5)git pull
此命令用于获取远程分支中更新。
语法:git pull 远程主机 远程分支:本地分支如:git pull origin master:master,表示将远程主机origin中的master分支跟新到本地分支master。