git版本控制
Git的介绍和基本使用,以及部署Gitlab私有仓库
·
GIT的基本介绍和部署
一、gitlab、git和github的区别
Git是版本控制系统
Github是在线的基于Git的代码托管服务,GitHub提供付费账户和免费账户,都可以创建公开的代码仓库,可以创建私有的代码仓库
Gitlab 创建免费的私人仓库
二、Git简介
1、简介
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持
2、git的工作流程
1、克隆git资源作为工作目录 git clone 仓库地址
2、完后修改后,将文件提交到暂存区 git add
3、再提交到版本仓库 git commit
4、最后提交到远程仓库 git push
3.git的工作区、暂存区和版本库
工作区:就是你在电脑里能看到的目录
暂存区:英文叫stage, 或index。一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)
版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库
三、git的使用
1、git的基本命令
配置用户名和邮箱(必须)
git config --global user.name "用户名"
git config --global user.email "邮箱"
初始化命令
git init
将一个文件添加到暂存区
git add 文件名
将当前目录下的文件添加到暂存区
git add .
将文件提交到版本仓库
git commit -m "描述"
查看版本日志
git log
查看暂存区的状态
git status
返回到上一个版本
git reset --hard HEAD^ 一个^代表一个版本
返回到指定的版本
git reset --hard 版本编号
从本地上传到远程仓库
git push -u origin 分支名字
指定远程仓库地址
git remote add origin 仓库地址
2、git的基本使用
ssh 链接:
客户机上产生公钥上传到gitlab的SSH-Keys里,git clone下载和git push上传都没问题,这种方式很安全
ssh连接github:
登录github,这是github的主页(如果没有账户需要注册)
git服务器生成密钥
ssh-keygen
cat .ssh/id_rsa.pub
web页面配置密钥
3、版本的穿梭
先使用 git reflog 查看版本号
每提交一个版本对应一个版本号
查看版本号
git reflog
回退到上一个版本
git reset --hard HEAD^
穿梭到指定版本
git reset --hard 版本id
4、分支管理
创建分支
git branch 分支名字
查看分支
git branch *在谁上代表在谁上面
切换分支
git checkout 分支名字 在分支上提交的,其他分支看不到
合并分支
合并给谁,在哪个分支上执行
git merge 被合并的分支
删除分支
git branch -d 分支名字
四、gitlab的部署
1、安装对应的软件
yum -y install curl openssh-server openssh-clients cronie policycoreutils-python
2、配置gitlab仓库(选择一个即可)
阿里云的源
vim /etc/yum.repos.d/git.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
Repo_gpgcheck=0
Enabled=1
gpgcheck=0
清华大学的源
vim /etc/yum.repos.d/git.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
官方源
vim /etc/yum.repos.d/git.repo
[runner_gitlab-ci-multi-runner]
name=runner_gitlab-ci-multi-runner
baseurl=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[runner_gitlab-ci-multi-runner-source]
name=runner_gitlab-ci-multi-runner-source
baseurl=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
3、安装gitlab
yum -y install gitlab-ce
4、修改配置文件
绑定本机的IP地址或者域名
vim /etc/gitlab/gitlab.rb
***
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-theexternal-url-for-gitlab
# 没有域名,可以设置为本机IP地址
external_url 'http://10.0.1.86'
***
使用域名需要做域名解析
vim /etc/hosts
/etc/hosts的域名要和配置文件里面的域名一致
5、初始化gitlab
gitlab-ctl reconfigure
6、启动gitlab
gitlab-ctl start
7、修改root用户的密码
gitlab-rails console -e production
2. 执行如下命令, 修改root密码为你想要的密码, 无需重启即可完成设置
u=User.where(id:1).first # u定义为root用户
u.password='你的密码' # 设置root密码, 注意需要符合密码强度
u.password_confirmation='你的密码' # 确认当前密码
u.save! # 保存操作
quit # 退出交互界面
8、给gitlab增加功能
1、部署https功能(证书是虚假的)
创建目录来存放证书
mkdir -p /etc/gitlab/ssl
cd /etc/gitlab/ssl/
生成密钥
openssl genrsa -out " 77cloud.com.key" 2048 写自己的域名
生成证书请求文件
openssl req -new -key "77cloud.com.key" -out "77cloud.com.csr"
生成证书
openssl x509 -req -days 365 -in "77cloud.com.csr" -signkey "77cloud.com.key" -out "77cloud.com.crt"
gitlab还需要配pem证书文件
生成pem证书文件
openssl dhparam -out dhparam.pem 2048
修改文件的权限 (证书文件的权限为600)
chmod 600 /etc/gitlab/ssl/*
修改配置文件
vim /etc/gitlab/gitlab.rb
external_url 'https://gitlab.example.com' 13行左右
nginx['redirect_http_to_https'] = true 改成true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt" 输入自己的证书文件
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key" 输入自己的密钥文件
# nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparam.pem" # Path to dhparams.pem,eg. /etc/gitlab/ssl/dhparams.pem
使用https克隆项目
注意事项:
需要关闭ssl安全认证
方法一:
git config --global http.sslVerify false
方法二:
vim .gitconfig
[http]
sslVerify = false
9、gitlab的角色
用户角色
| 角色 | 权限说明 |
| --------- | ------------------------------------------------------------ |
| Guest | 可以创建issue、发表评论,不能读写版本库 |
| Reporter | 可以克隆代码,不能提交,QA、PM可以赋予这个权限 |
| Developer | 可以克隆代码、开发、提交、push,RD可以赋予这个权限 |
| Master | 可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限 |
| Owner | 可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限 |
五、代码开发合并的流程
PM(项目主管/项目经理)在gitlab创建任务,分配给开发人员
开发人员领取任务后,在本地使用git clone拉取代码库
开发人员创建开发分支(git checkout -b dev),并进行开发
开发人员完成之后,提交到本地仓库(git commit )
开发人员在gitlab界面上申请分支合并请求(Merge request)
PM在gitlab上查看提交和代码修改情况,确认无误后,确认将开发人员的分支合并到主分支(master)
开发人员在gitlab上Mark done确认开发完成,并关闭
更多推荐
已为社区贡献1条内容
所有评论(0)