git服务器的种类
- 基于ssh协议服务器
- 基于git协议的服务器
- 基于http协议服务器
git服务器部署需求
- 安装git软件
- 创建版本库
- 客户端克隆版本库到本地
- 本地工作目录修改数据
- 提交本地修改到服务器
分布式基于SSH协议的git服务器
服务端
yum -y install git //安装git包
git --version
mkdir /var/git //创建共享目录
git init /var/git/project --bare //创建一个空库
ls /var/git/project
客户端
yum -y install git
git clone root@192.168.2.100:/var/git/project //克隆git库到本地
cd project
git config --global user.email "yls@163.com" //配置客户端用户邮箱
git config --global user.name "yls" //配置客户端用户名
cat ~/.gitconfig //查看用户配置
echo "init date" > init.txt //创建文件
mkdir demo ; cp /etc/hosts demo //拷贝文件到库
git add . 或git add init.txt //将工作区的文件提交到暂存区
git rm init.txt //移除暂存区的文件
git commit -m "注释,可以使任意字符" //将暂存区修改提交到本地仓库
git status //查看git状态
git config --global push.default simple //配置push的规则
git push
passwd:******* //输入服务器密码
git status
git pull //将服务器上的新数据更新到本地
git log / git log --pretty=online /log --oneline /reflog
****************************************************************
通过移动head指针恢复数据
git reflog
04ddc0f HEAD@{1}: commit: num.txt:789
7bba57b HEAD@{2}: commit: num.txt:456
301c090 HEAD@{3}: commit: num.txt:123
git reset --hard 7bba //指针移动到7bba位置,文件版本为7bba
cat num.txt //验证结果
:456
git rm init.txt //删除init文件,利用head指针恢复文件
git commit -m "delete init.txt"
git reflog
0dc2b76 HEAD@{0}: commit: delete init.txt
04ddc0f HEAD@{1}: commit: num.txt:789
git reset --hard 04dd
ls
******************************
git分支branch
常见分支规范: master(主分支,代码核心)
develop(最新开发成果的分支)
release(发布新产品设置的分支)
hotfix(修复bug分支)
feature(开发新功能分支)
git status //查看当前分支
git branch hotfix //创建分支
git checkout hotfix //切换分支
git merge master //合并分支,数据不一样,产生冲突,需修正提交修正结果
*******************************************************************
免密码登录
ssh-keygen -f /root/.ssh/id_rsa -N '' //制作密钥
ssh-cop-id 192.168.2.100 //git服务器ip地址
git push
git协议服务器(只读)
服务器
yum -y install git-daemon
git init --bare /var/git/base //创建空GIt库
>修改配置文件,启动gitfuwu
vim /usr/lib/systemd/system/git@.service
修改文件成:
ExecStart=-/usr/libexec/git-core/git-daemon --base-path=/var/git
--export-all --user-path=public_git --syslog --inetd –verbose
//--base-path=/var/git指定git的位置
systemctl start git.socket //启动服务
客户端
git clone git://192.168.2.100/base //连接git服务器
基于HTTP协议的git服务器(只读)
服务端
yum -y install httpd gitweb //安装软件包
vim +11 /etc/gitweb.conf
$projectroot = "/var/git" //修改配置文件,设置仓库根目录
git init --bare /var/git/base //创建仓库
systemctl start httpd
客户端访问
firefox http://192.168.2.100/git/