版本控制、head 指针、 Git基础 、 Git进阶 、 RPM打包
版本控制
svn(subversion)
集中式管理数据的工具
必须有服务器且在线,客户机有代码更新必须要提交,数据由服务器端统一保存
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
评论留言