一、Git/Github/Gitlab简介
Git由Linux之父Linus Torvalds(林纳斯*托瓦兹)于2005年开发的一个分布式持续集成工具,设计之初就具有以下优点:
- 可靠性:数据的上传和下载必须是安全的、一致的,所有行为都要进行验证,数据的变更通过不同的版本尽心逻辑隔离;
- 分布式:Linus Torvalds认为之前的集中式版本控制系统性能太差,于是git的代码恢复不依赖于中央服务器,而是每个开发电脑都是一个本地仓库,可用于代码提交与回滚;
- 高效:Git基于分布式的功能实现代码的快捷提交与秒级回滚;
Github是基于Git的一个共有代码仓库,GitHub与2008年4月市场上线,2018年6月微软宣布通过75亿美元的股票交易收购GitHub。
Gitlab是基于Git的一个私有代码仓库。
二、Gitlab安装部署
官方网站介绍:https://docs.gitlab.com
安装Gitlab环境要求:https://docs.gitlab.com/ce/install/requirements.html
Git客户端官方下载:https://git-scm.com/
1.下载gitlab安装包
阿里云下载地址:https://mirrors.aliyun.com/gitlab-ce/yum/el7/
清华大学下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
或Ubuntu:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/bionic/main/g/gitlab-ce/
[root@master1 package]# wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm [root@master1 package]# ls -hl total 634M drwxr-xr-x 2 root root 145 May 23 22:36 bare-metal drwxr-xr-x 2 root root 32 May 16 10:53 flannel -rw-r--r-- 1 root root 634M Aug 13 2019 gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm -rw-r--r-- 1 root root 1.1K May 14 16:30 k8s.bak -rw-r--r-- 1 root root 15K May 14 17:24 kube-flannel.yaml
2.安装
Centos系统可以通过yum或rpm安装
[root@master1 package]# rpm -i gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm warning: gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY gitlab: GitLab now ships with a newer version of PostgreSQL (10.7), but it is not yet gitlab: enabled by default. To upgrade, RUN THE FOLLOWING COMMAND: sudo gitlab-ctl pg-upgrade gitlab: Note: This command does not support Geo instances yet. So we don't gitlab: recommend running this command on Geo nodes. It will be supported gitlab: in GitLab 12.0. gitlab: For more details, please see: gitlab: https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server gitlab: It looks like GitLab has not been configured yet; skipping the upgrade script. *. *. *** *** ***** ***** .****** ******* ******** ******** ,,,,,,,,,***********,,,,,,,,, ,,,,,,,,,,,*********,,,,,,,,,,, .,,,,,,,,,,,*******,,,,,,,,,,,, ,,,,,,,,,*****,,,,,,,,,. ,,,,,,,****,,,,,, .,,,***,,,, ,*,. _______ __ __ __ / ____(_) /_/ / ____ _/ /_ / / __/ / __/ / / __ `/ __ \ / /_/ / / /_/ /___/ /_/ / /_/ / \____/_/\__/_____/\__,_/_.___/ Thank you for installing GitLab! GitLab was unable to detect a valid hostname for your instance. Please configure a URL for your GitLab instance by setting `external_url` configuration in /etc/gitlab/gitlab.rb file. Then, you can start your GitLab instance by running the following command: sudo gitlab-ctl reconfigure For a comprehensive list of configuration options please see the Omnibus GitLab readme https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
3.配置
编辑文件/etc/gitlab/gitlab.rb,
配置访问地址, 修改external_url参数为本机ip地址或者域名。
external_url 'http://192.168.222.150'
配置邮箱server信息
### GitLab email server settings ###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html ###! **Use smtp instead of sendmail/postfix.** gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.server" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "smtp user" gitlab_rails['smtp_password'] = "smtp password" gitlab_rails['smtp_domain'] = "example.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false
Email Setting
### Email Settings # gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = 'example@example.com' # gitlab_rails['gitlab_email_display_name'] = 'Example' # gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com' # gitlab_rails['gitlab_email_subject_suffix'] = ''
GitLab User Settings
##! Modify default git user. ##! Docs: https://docs.gitlab.com/omnibus/settings/configuration.html#changing-the-name-of-the-git-user-group user['git_user_email'] = "gitlab@#{node['fqdn']}"
实例如下:
您暂时无权查看此隐藏内容!
三、Gitlab使用
1.web访问
配置完毕后执行gitlab命令重载配置文件即可通过配置的url地址进行访问。
# 载入配置初始化或重置配置 [root@master1 ~]# gitlab-ctl reconfigure
2.常用命令
Part1:
git config --global user.email "you@example.com" # 设置全局邮箱 git config --global user.name "Your Name" # 设置全局用户名 git config --global --list # 列出用户全局设置 git clone URL # 克隆项目到本地 git clone -b BRANCH-NAME URL # 克隆指定分支的项目到本地 git add FILE ./ # 添加指定文件、目录或当前目录下所有数据到暂存区 git commit -m "V1" # 提交文件到本地工作区(本地仓库) git status # 查看本地工作区和暂存区状态 git push # 提交代码到服务器 git pull # 从gitlab服务器更新代码到本地
创建并编辑.gitignore文件,可以添加定义不需要上传到gitlab的文件或目录
Part2:
git log # 查看操作日志 git log --pretty=oneline # 按单行简介显示日志信息 git reset --hard HEAD^ # git版本回滚,HEAD为当前版本,加一个^表示上一个版本,加两个^^表示上上个版本 git reflog # 获取每次提交的ID,可以使用--hard根据提交的ID进行版本回滚 git reset --hard xxxxxx # 回滚到指定ID的版本(一般使用id的前7位标识某个版本) git revert xxxxxx : (回退线上线下版本推荐方法)表示撤销上次的操作,并重新comit,然后重新git push即可正常回退
版本回退参考:DevOps的实现方法总结【二】——Gitlab
Part3:
git branch # 查看当前所处的分支 git checkout -b develop # 创建并切换到一个新的分支(若分支不存在会自动创建) git checkout develop # 切换分支 git merge origin/develop && git push # 合并分支
四、Gitlab重置管理员密码
连接到gitlab安装的服务器,输入su – git 切换到git用户,切换之后默认的当前目录就可以ls查看到gitlab的命令文件,如下所示可以看到gitlab-rails文件,下一步会使用此文件进入控制台
root@iZad705ziue25txnr4sv5lZ:~# su - git $ ls alertmanager gitaly gitlab-monitor gitlab-workhorse node-exporter prometheus trusted-certs-directory-hash backups git-data gitlab-rails logrotate postgres-exporter public_attributes.json bootstrapped gitlab-ci gitlab-shell nginx postgresql redis
输入gitlab-rails console production进入gitlab控制台,只有进入到控制台之后,才可以输入gitlab的查询语句,才会被解析
$ gitlab-rails console production ------------------------------------------------------------------------------------- GitLab: 11.9.12 (bbb9720ea4a) GitLab Shell: 8.7.1 postgresql: 9.6.11 ------------------------------------------------------------------------------------- Loading production environment (Rails 5.0.7.2) irb(main):001:0>
输入user = User.where(id:1).first查询id为1的用户对象,因为超级管理员用户默认都是1,也可以更加username来查询用户对象,管理员账户对象查询到之后,可以从返回的信息中看到admin为true,username为root
irb(main):002:0> user = User.where(id:1).first => #<User id:1 @root>
输入user.password=’YOUR PASSWORD’,密码位置填写您新的密码,在此输入user.password_confirmation=”YOUR PASSWORD”进行密码确认。然后再输入user.save!保存用户对象,此时密码已重置成功!
irb(main):003:0> user.password='Pj@xxx' => "Pj@xxx" irb(main):010:0> user.password_confirmation="Zqjsyl1992" => "Pj@xxx" irb(main):004:0> user.save! Enqueued ActionMailer::DeliveryJob (Job ID: f745447c-4e73-4cdd-a611-5558c2d7ddb0) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", #<GlobalID:0x00007fe3a091a3f8 @uri=#<URI::GID gid://gitlab/User/1>> => true
评论前必须登录!
注册