版本控制、head 指针、 Git基础 、 Git进阶 、 RPM打包
集中式管理数据的工具 必须有服务器且在线,客户机有代码更新必须要提交,数据由服务器端统一保存
git 分布式管理数据的工具
无需服务器或者客户机随时在线,仅仅初次连接同步时需要,或者更新代码之后提交时需要
web1中安装git,部署服务端环境
# 装包 yum -y install git # 创建目录 mkdir /var/git # 创建git仓库 --bare 空的 裸的 git init /var/git/project --bare
常用指令
clone 将远程服务器的仓库克隆到本地 config 修改git配置 add 添加修改到暂存区 commit 提交修改到本地仓库 push 提交修改到远程服务器 rm 删除 pull 同步服务器的更新内容
web2安装git,部署客户端环境
# 装包 yum -y install git · # 克隆 git clone root@192.168.2.100:/var/git/project # 进入仓库 cd project # 写个文件 相当于项目代码 echo "web2_001" > web2_001.txt # 添加修改到暂存区 [root@web2 project]# git add . # 创建目录 相当于项目代码 [root@web2 project]# mkdir test [root@web2 project]# cp /etc/hosts test/ # 添加修改到暂存区 [root@web2 project]# git add . # 查看git状态 [root@web2 project]# git status # 设置提交人身份 git config --global user.email "zhu@itqzw.com" git config --global user.name "Da Wei" # 添加到本地仓库,并注释 即 .git 文件中 commit 时间节点 [root@web2 project]# git commit -m "web2_001.txt test/hosts" ------至此远程服务器上没有------ # 设置使用习惯 [root@web2 project]# git config --global push.default simple # 推到远程服务器 [root@web2 project]# git push # 从服务器拉数据 [root@web2 project]# git pull
web1部署客户端环境
[root@web2 project]# git config --global push.default simple
当服务器git代码有更新,本地也有更新时,git push 会失败;先git pull ,会强行让你写一条冲突日志,就是大家都有更新(自动进入vim,wq 退出即可,pull也会成功)。再git push 把本地同步到线上
修改相同文件的冲突处理,git pull 还是报错,文件会被主动修改,直接编辑,保留想要的修改wq 保存退出, git add . git commit -m “冲突保留” git push 就可以成功了
head 指针
查看日志
git reflog 查本机使用日志 git log --oneline 查服务器使用日志 4cf1cef web2修改了web2_003.txt 21aaf7e web2修改了web2_002.txt 1f0b820 增加web2_003.txt ae768f0 增加web2_002.txt e1d00c0 删除web1_001.txt d41af2c web1_001.txt 9ba07ea web2_001.txt test
还原到指定版本
git reset --hard 1f0b820
Git基础
git 分支操作
MASTER分支 主分支 代码核心 DEVELOP分支 最新开发成果的分支 RELEASE分支 发布新产品的分支 HOTFIX分支 修复软件bug的分支 FEATURE分支 为开发新功能设置的分支
查看分支
git status git branch * 代表你所在分支
创建分支(此时分支内容一样 同一个时间节点)
git branch hotfix
切换分支
git checkout hotfix
新分支第一次提交
git push --set-upstream origin hotfix
合并分支
git checkout master git merge hotfix
gitee.com 使用
- 左侧进入仓库,点击右上角加号 新建仓库 设置公开 选择使用readme初始化仓库 创建即可
- 点击文件 新建文件 分支master
Git进阶
前面都是通过ssh连接的,只需要创建无密码连接ssh即可
git协议的服务器 只读
在web1上
yum -y install git-daemon
添加仓库
git init /var/git/project --bare
修改配置文件
vim /usr/lib/systemd/system/git@.service 修改为 --base-path=/var/git
起服务
systemctl start git.socket
查看
web2
git clone git://192.168.2.100/project
http协议web访问git 只读
在web1
yum -y install httpd gitweb
添加仓库
git init /var/git/project --bare
修改配置文件
vim +11 /etc/gitweb.conf our $projectroot = "/var/git";
起服务
systemctl start httpd
查看
http://192.168.2.100/git/
RPM打包
制作nginx的rpm包
yum -y install gcc pcre-devel openssl-devel yum -y install rpm-build [root@web1 ~]# rpmbuild -ba nginx.spec 错误:stat /root/nginx.spec 失败:没有那个文件或目录 [root@web1 ~]# ls rpmbuild [root@web1 ~]# ls rpmbuild/ BUILD BUILDROOT RPMS SOURCES(源码包) SPECS(配置文件) SRPMS
将源码包放到SOURCES中
[root@web1 ~]# cp lnmp_soft/nginx-1.12.2.tar.gz rpmbuild/SOURCES/
生成并编辑配置文件
[root@web1 ~]# vim rpmbuild/SPECS/nginx.spec #名称不能随意写 Name:nginx #版本不能随意写 Version:1.12.2 #自定义版本号 Release:1 #简单描述 Summary:describe text # 所属组 直接注释 #Group: #授权协议 License:GPL # 网址(一般是个人或者公司网址) URL:www.itqzw.com # 源码包名称 不能随意写 Source0:nginx-1.12.2.tar.gz # 下面亮相注释 #BuildRequires: #Requires: #详细描述 %description nginx describe text more text %post useradd -s /sbin/nologin nginx # rpm包安装完后将会执行,追加指令非必须操作 %prep %setup -q %build ./configure --user=nginx --group=nginx --with-http_ssl_module # 百分号改成./ make %{?_smp_mflags} %install make install DESTDIR=%{buildroot} %files %doc /usr/local/nginx/* #安装之后的文件路径 %changelog
制作源码包
[root@web1 ~]# rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
查看生成的rpm包
[root@web1 ~]# ls /root/rpmbuild/RPMS/x86_64/ nginx-1.12.2-1.x86_64.rpm nginx-debuginfo-1.12.2-1.x86_64.rpm
安装
rpm -ivh nginx-1.12.2-1.x86_64.rpm 或者 yum -y install nginx-1.12.2-1.x86_64.rpm
点赞
评论留言