云服务器为:腾讯云
客户端:win10操作系统
git是一个分布式的版本控制系统。这也就意味着主机克隆原始仓库之后,每一个主机上的仓库都是相同并且完整的,没有主次之分。这样极大的保证了数据的安全性。
部署开始
1.服务端部署
- 在云服务器上安装git服务程序
yum install git
- 添加一个用户git,只能用来上传文本文件,而不能ssh登录
adduser git
chsh -s $(command -v git-shell) git
//使用git-shell替换bash,这样git用户就不能通过ssh登录 - 创建git版本仓库,一般规范的方式要以
.git
为后缀:
mkdir kingwen.git
- 修改git版本仓库的所有者与所有组:
chown -Rf git:git kingwen.git/
//这一步是让目录可以被git用户修改,否则会出现“ permission denied”错误 - 初始化git版本仓库:
cd kingwen.git/
git --bare init
至此Git服务器部署好了,但是还不能够上传文档文件,也不能克隆你的仓库。需要在服务器上开放至少一种支持Git的协议(http/https/ssh),我们采用ssh
- 添加ssh公钥,在
/home/git/.ssh/authorized_keys
里添加客户端的公钥,一行一个。如果没有文件,可以新建
mkdir /home/git/.ssh
touch /home/git/.ssh/authorized_keys
在这一步放入公钥指的是客户端的公钥,所以涉及到客户端生成公钥:
客户端如何生成公钥呢?首先我们明确客户端是也需要git服务程序的,我们用git服务程序来生成公钥就可以啦。需在客户端操作
- 安装git (windows上都是点击下一步安装的) git官网
- 打开git-bash,执行
$ cd ~ #保证当前路径在”~”下 $ ssh-keygen -t rsa -C "xxxxxx@yy.com" #建议填写自己真实有效的邮箱地址
*本机已完成ssh key设置,公钥存放路径为:
c:/Users/{用户名}/.ssh/id_rsa.pub
2.客户端部署
- 配置账户
$ git config --global user.name “your_username” #设置用户名
$ git config --global user.email “your_registered_Email” #设置邮箱地址
- 切换到某个目录来克隆仓库:eg:桌面
cd ~/Desktop/
git clone ssh://git@{服务器对外ip}:22/git/kingwen.git
- 向Git版本仓库中提交一个新文件并提交到本地git仓库:
echo "I successfully cloned the Git repository" > readme.txt
git add readme.txt //添加进暂存区
git status //查看状态
- 推送到远程Git服务器,首先定义远程的Git服务器:
git remote add server git@{服务器对外ip}:/root/kingwen.git
- 将文件提交到远程Git服务器
git push -u server master