一、介绍
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
GitLab拥有与Github类似的功能,它非常易于浏览提交过的版本并提供一个文件历史库。
二、安装
1.获取安装包
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/ol/7/gitlab-ce-11.9.6-ce.0.el7.x86_64.rpm
2.安装依赖包
yum install curl policycoreutils openssh-server openssh-clients postfix
3.安装gitlab
yum localinstall gitlab-ce-11.9.6-ce.0.el7.x86_64.rpm
4.配置gitlab
vim /etc/gitlab/gitlab.rb

#gitlab绑定本地IP地址或域名external_url 'http://10.0.0.101'#gitlab数据目录git_data_dirs({ "default" => { "path" => "/data/gitlab-core" } })#邮箱设置gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.exmail.qq.com"gitlab_rails['smtp_port'] = 465gitlab_rails['smtp_user_name'] = "gitlab@blpwdev.com"gitlab_rails['smtp_password'] = "123456"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = truegitlab_rails['gitlab_email_from'] = 'gitlab@blpwdev.com'

5.启动服务
#重载配置文件
gitlab-ctl reconfigure
#启动gitlab
gitlab-ctl start
6.验证邮件
gitlab-rails console
Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
7.验证
Web:访问:10.0.0.101
用户:root
密码:rootpasswd
gitlab服务器部署
三、关闭自动注册
#我们关闭自动注册,因为我们内部使用不需要用户自己注册,由运维分配用户即可
gitlab服务器部署
四、添加key,做免密验证
1.在客户端创建密钥
ssh-keygen -t rsa
2.复制公钥
cat ~/.ssh/id_rsa.pub
3.在gitlab上添加公钥
gitlab服务器部署
gitlab服务器部署
注:保存后就可以拉取代码
五、备份与恢复
1.备份,默认路径:/var/opt/gitlab/backups
gitlab-rake gitlab:backup:create
2.恢复
gitlab-rake gitlab:backup:restore BACKUP=1610557313_2021_01_14_11.9.6
六、常用命令
#创建git仓库
git init
#拉取gitlab上的代码
git clone git@linux-gitlab:web/web-demo.git
#身份认证
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
#把文件添加到仓库,以便之后的提交
git add file.txt
#把文件提交到仓库
git commit -m “readme”
#查看状态
git status
#查看工作区和版本库里面最新版本的区别
git diff HEAD -- readme.txt
#把文件在工作区的修改全部撤销
git checkout -- file
#把暂存区的修改撤销掉,重新放回工作区
git reset HEAD <file>
#显示从最近到最远的提交日志
git log
git log --pretty=oneline
#退回上一版本(HEAD表示当前版本,HEAD^表示上一版本,HEAD^^表示上上版本,往上100个可以写成HEAD~100)
git reset --hard HEAD^
#回到退回前的版本(在退回前要备份所有版本ID,否则无法回到未来)
git reset --hard 1094a
#从版本库中删除该文件
git rm file
#关联远程库
git remote add origin git@linux-gitlab:web/web-demo.git
#把本地库的所有内容推送到远程库上
git push -u origin master
#从一个仓库或者本地的分支拉取并且整合代码
git pull
#创建dev分支并切换
git checkout -b dev

git branch dev
git checkout dev

git switch -c dev #表示创建并切换分支
git switch master #表示直接切换到已有的master分支
#查看当前分支
git branch
#合并dev分支到当前分支
git merge dev
#加上--no-ff参数就可以用普通模式合并,合并后的历史有分支
git merge --no-ff -m "merge with no-ff" dev
#删除指定分支
git branch -d dev
#把当前工作现场“储藏”起来
git stash
#查看”储藏“的工作现场
git stash list
#恢复”储藏”的工作现场
git stash apply #恢复后,stash内容并不删除,使用git stash drop删除
git stash pop #恢复的同时把stash内容也删了
#复制一个特定的提交到当前分支
git cherry-pick 54c805e2
#查看远程库的信息
git remote -v
#打一个新标签
git tag v1.0
#查看所有标签
git tag
#对指定提交打标签
git tag v0.9 <commit id>
#查看指定标签
git show v0.9
#可以指定标签信息
git tag -a <tagname> -m "comment"
#删除标签
git tag -d v0.1
#推送某个标签到远程
git push origin v1.0
#次性推送全部尚未推送到远程的本地标签
git push origin --tags
#远程删除,先从本地删除
git tag -d v0.9
git push origin :refs/tags/v0.9

更多相关文章

  1. [一些勘误]ubuntu16.04的Python版本,Python3是否默认安装pip
  2. 分支和循环结构的继续熟练
  3. 【MySQL】数据库版本升级:mysql 5.6 升级到 mysql 5.7
  4. Mac版本的Sublime Text常用快捷键
  5. Redis5.0中的内存淘汰策略详解(最新的版本)
  6. Springboot整合redis(Lettuce版本)
  7. Springboot整合mybatis(注解而且能看明白版本)

随机推荐

  1. 详细介绍php迭代器的作用
  2. php日期格式化方法详解
  3. PHP实现文件上传下载实例详细讲解
  4. php排序函数详细讲解(附实例)
  5. PHP魔术常量、魔术函数、预定义常量详细
  6. php安全问题思考
  7. PHP——命名空间(namespace)使用详细介绍
  8. mac下多个php版本切换(可操作版)
  9. TP5框架下MySQL通过LOAD DATA INFILE批量
  10. 关于PHP中闭包的详细讲解(附详细实例)