版本控制、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  

评论