我这里用的是redhat7.4, 直接开始吧.
环境
服务端: Redhat7.4 + git(version 1.8.3.1) IP:192.168.137.168 客户端: win7 + git (version 2.19.1)
Git
server:
[root@localhost gittest.git]# git --version git version 1.8.3.1
我这里是有的, 没有的话
yum install git -y
client:
官网地址: https://git-for-windows.github.io/
服务器操作
- 新建git用户与赋予密码
useradd git passwd git
注:这里的密码我用1234
- 为服务器创建一个git用的文件夹(git仓库)
mkdir /usr/local/gittest.git
注:这个目录可以随便建(项目在哪就放哪), 只要后面授权给git用户管理就行
- 初始化
git init --bare /usr/local/gittest.git
- 授权
chown -R git:git /usr/local/gittest.git
注:这个就很简单了,在/usr/local/gittest.git下会看到生成了目录
客户端操作
注:这一波用的不是powershell或者cmd, 确定客户端的git已安装.
- 简介
- 新建目录
hp@hp-PC MINGW64 /d/wamp64 $ mkdir gittest_gitbash hp@hp-PC MINGW64 /d/wamp64 $ ls gittest/ gittest_gitbash/ www/ c hp@hp-PC MINGW64 /d/wamp64 $ cd gittest_gitbash/ hp@hp-PC MINGW64 /d/wamp64/gittest_gitbash $ pwd /d/wamp64/gittest_gitbash
- clone项目
git clone git@192.168.137.168:/usr/local/gittest.git
注:这个就很容易理解了, 将服务器上面的文件夹下的东西拉取到本地(就是这个目录下d:wamp64gittest_gitbash)
- 自动弹出提示
The authenticity of host '192.168.137.168 (192.168.137.168)' can't be established. RSA key fingerprint is SHA256:Ve6WV/SCA059EqoUOzbFoZdfmMh3B259nigfmvdadqQ. Are you sure you want to continue connecting (yes/no)? yes
成功!
- 发现
此时会在本地C:Users用户名.ssh 下生成文件 known_hosts
- 创建公钥私钥
ssh-keygen -t rsa -C "邮箱"
注:此时C:Users用户名.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub
- 服务器Git打开rsa认证
[root@localhost gittest.git]# cd /etc/ssh/ [root@localhost ssh]# ls moduli sshd_config ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub ssh_config ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key [root@localhost ssh]# vim sshd_config
- 打开三个注释
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
- 重启sshd
systemctl stop sshd.service systemctl start sshd.service
- 在git用户目录新建.ssh目录
mkdir /home/git/.ssh
- 授权
chown -R git:git /home/git
- 将客户端公钥上传到服务器端git用户目录.ssh
cd C:Users用户 ssh git@192.168.137.168 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
注:这里要切换到.ssh的上一级目录, 因为要将authorized_keys文件当前内容上传到服务器中
- 再看一下服务器上面的目录
- 客户端再次clone远程仓库
git clone git@192.168.137.168:/usr/local/gittest.git
结尾
- 禁止git用户ssh登录
vim /etc/passwd 将 git:x:1004:1005::/home/git:/bin/bash 改为 git:x:1004:1005::/home/git:/bin/git-shell
Git服务器搭建完毕!
后续
- 删除远程分支点
git remote remove origin
- 新建远程分支点
origin 为远程仓库别名 后面http 为远程仓库地址
git remote add origin git@192.168.137.168:/home/git/data/git/learngit.git
- 本地库提交到远程分支(上传)
git push <远程主机名> <本地分支名>:<远程分支名>
git push learngit master:origin
- 本地分支拉取远程分支(下载)