一、介绍

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'] = true

gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"

gitlab_rails['smtp_port'] = 465

gitlab_rails['smtp_user_name'] = "gitlab@blpwdev.com"

gitlab_rails['smtp_password'] = "123456"

gitlab_rails['smtp_authentication'] = "login"

gitlab_rails['smtp_enable_starttls_auto'] = true

gitlab_rails['smtp_tls'] = true

gitlab_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

a91b4638b334096e4cbfb9219a8d2a84.png

三、关闭自动注册

#我们关闭自动注册,因为我们内部使用不需要用户自己注册,由运维分配用户即可

606e39676af1895b1869b2b36822bcbe.png

四、添加key,做免密验证

1.在客户端创建密钥

ssh-keygen -t rsa

2.复制公钥

cat ~/.ssh/id_rsa.pub

3.在gitlab上添加公钥

8720ade7b356c281bd0a14ad144e0365.png

44238fa1aa9ca7508237792735cf4133.png

注:保存后就可以拉取代码

五、备份与恢复

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

#显示从最近到最远的提交日志

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

#查看指定标签

git show v0.9

#可以指定标签信息

git tag -a -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

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐