常见的版本控制系统
一、Git
Git 是一个开源的分布式版本控制系统,用于有效、高速的处理版本控制,从很小到非常大的项目都支持。一个原始 Git 版本仓库,可以让其他主机克隆这个原始版本仓库,从而使得一个 Git 版本仓库可以同时分布到不同的主机上,并且每台主机的版本库都是一样的, 并没有主次之分,极大的保证了数据的安全性,并使得用户能够自主选择 Git 服务器推送文件。作为一个分布式的版本控制系统,在 Git 中并不存在主库这样的概念。每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而设计的一个开放源码的版本控制系统,是作为一种过渡方案用来替代 BitKeeper。BitKeeper 一直是 Linux 内核开发人员在全球使用的主要源代码工具。因为开放源码社区中有些人认为 BitKeeper 的许可证并不适合开放源码社区的工作,所以 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初研发 Git 的目的是为了辅助 Linux 内核开发,但目前在很多其他自由软件项目中也使用了 Git。
二、GitHub
GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。GitHub 可以提供给用户空间创建 Git 仓储,保存用户的一些数据文档或者代码等。GitHub 作为开源代码库以及版本控制系统,目前拥有 140 多万开发者用户。随着越来越多的应用程序转移到了云上,GitHub 已经成为了管理软件开发以及发现已有代码的首选方法。GitHub 可以托管各种 Git 库,并提供一个 Web 界面,但与其它像 SourceForge 或 Google Code 这样的服务不同,GitHub 的独特卖点在于从另外一个项目进行分支的简易性。
三、GitLab
GitLab 是一个基于 Git 的项目管理软件,用于仓库管理系统的开源项目。使用 Git 作为代码管理工具,并在此基础上搭建起来 Web 服务。Git、Gitlab、Github 都是基于 Git 的,可以说是 Git 的衍生品。
Git功能特性
克隆数据库版本
提交代码
合并分支
拉取合并分支
代码冲突解决
了解 Git 和 Gitlab 仓库的部署及操作
资源列表
操作系统配置主机名/IP地址CentOS 7.92C4Gmaster/172.16.10.10CentOS 7.92C4Gclient/172.16.10.11基础环境
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭selinux
sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config
reboot
时间同步
yum -y install chrony
systemctl start chronyd
chronyc sources -v
修改主机名
hostnamectl set-hostname master
hostnamectl set-hostnmae client
修改hosts文件
cat >> /etc/hosts << EOF
172.16.10.10 master
172.16.10.11 client
EOF
一、git代码仓库部署操作
1.1 安装Git
节点都要安装
yum -y install git
# 创建仓库
mkdir /root/httpd.git
# 创建用户并设置密码
useradd git
echo "123456" |passwd --stdin git
# 设置属主属组
chown -Rf /root/httpd.git
1.2 设置免密
client端执行
ssh-keygen
ssh-copy-id 172.16.10.10
1.3 测试上传代码
client端执行
git clone http://172.16.10.10/root/httpd.git
cd /root/httpd
# 配置用户名称和电子邮件地址。每次 Git 提交时都会引用这两条信息,记录提交了文件的用户,并且会随更新内容一起被永久纳入历史记录。
git config --global user.name "zhangsan" ##定义用户
git config --global user.email "root@kgc.com ##定义邮箱
# 查看变量
git config --list
# 定义远程的 Git 服务器
git remote add server root@172.16.10.10:/root/httpd.git
# 创建项目上传到Git服务器
echo "This is a fiel" > readme.txt
git add readme.txt
git commit -m "add file"
git push -u server master
1.4 测试代码下载
client端执行
cd /root
mkdir test
cd /root/test
git clone http://172.16.10.10/root/httpd.git
二、Gitlab代码仓库部署操作
2.1 安装Gitlab
服务端安装Gitlab,客户端需要使用git 命令,要安装git
服务端安装Gitlab
# yum安装
##配置gitlab的yum源
vim /etc/yum.repos.d/gitlab-ce.repo //添加GitLab 源
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
================================================================
##清除缓存
yum clean all
##创建缓存
yum makecache
yum -y install gitlab-ce
# tar 包安装
##上传 git-ce.tar.gz 包
##解压安装
tar zxf git-ce.tar.gz
cd git-ce/
yum -y localinstall *.rpm
# 查看gitlab 服务状态
gitlab-ctl status
客户端安装GIt
yum -y install git
#配置用户名称和电子邮件地址。每次 Git 提交时都会引用这两条信息,记录提交了文件的用户,并且会随更新内容一起被永久纳入历史记录。
git config --global user.name "zhangsan" ##定义用户
git config --global user.email "root@kgc.com ##定义邮箱
2.2 修改配置文件
vim /etc/gitlab/gitlab.rb
##筛选到 external_url ,设置域名或IP地址
external_url 'http://172.16.10.10'
# 重新加载配置文件
gitlab-ctl reconfigure
2.3 登录web页面,创建项目
输入 服务端 IP地址:172.16.10.10 ,重置密码,登录用户为root,密码为重置密码
创建项目
2.4 测试上传代码
client端执行
git clone http://172.16.10.10/root/kgc.git
cd /root/kgc
echo "This is a fiel" > readme.txt
git add readme.txt
git commit -m "add file"
git push -u origin master
Username for 'http://172.16.10.10':root ##用户为 root
Password for 'http://root@172.16.10.10':yan123456 ##密码为 web端设置的密码
2.5 测试代码下载
client端执行
cd /root
mkdir test
cd /root/test
git clone http://172.16.10.10/root/kgc.git