git 学习(1)Ubuntu本地搭建gitlab
为了进一步学习git的操作和原理,在本地搭建一个gitLab 服务器,以作实验
git gitlab gerrit github 等等的区别和关系?
简单理解,git是一个分布式的代码版本管理软件,相应的还有svn,两者的区别就不再这里赘诉了,而 gitlab, gierrit, github都是一git作为基础,扩展其他功能开发而来,支持网页web访问,有了这个gitlab或者gerrit、github,我们可以通过网页访问。
个人工作过的公司,有小公司使用svn,有大公司使用gerrit的,也有正在使用gitlab的,使用svn的不支持离线,似乎功能也不如git这么强大,使用gerrit的时候个人也只是使用git的基本的一些命令,例如 git add,commit,--amend,stash等等,这里就先以gitlab为基础,搭个环境。
#vm 虚拟机+Ubuntu 20
gitlab,有两个版本,CE(community 社区版,free), EE(enterprise企业版),个人的话当然选择免费的ce版本 ,csdn上不少中文教程,偏偏我又想从官方去找原版指导文档,最后结合了官方原文档和各种版本的中文教程,成功搭建gitlab
最后来看,gitlab 是以git为基础,添加了网页服务器,可以提供网页登录,操作管理仓库,权限,合代码则是利用多分支,从一个开发分支合并到主干分支,普通用户不能直接往远程仓库的主干分支直接推送代码,所以一般只能创建一个临时开发分支,每次提交以一个MR merge request 合码请求为单位,并且支持触发自动化测试(ci), 审核之后将这个临时开发分支的代码merge到远程仓库的主干分支。
而Gerrit, 则是另一番原理。 以仓库为单位的,在真实远程仓库和用户仓库之间加了一个gerrit服务器的仓库,可以看做是一个过渡,待审核的仓库,用户无法跨过这个gerrit仓库直接往远程仓库上推送代码,只能先push到这个gerrit仓库,经过中间仓库审核确认允许,后续才会正正推送到远程仓库。
gitlab官方安装指导文档:
Download and install GitLab|GitLab
通过官网一步步跳转找到: 官网的底部 install 中就有介绍。
#sudo apt-get update
#sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
这个postfix, 和邮件相关的一个功能,不管有用无用还是给它一起装了,命令安装的时候会弹出配置选择框,安装原文档说明的选择一下即可,基本默认选择。
#curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
(自作主张把原文档里面的 gitlab-ee给换成gitlab-ce了)
#sudo apt-get install gitlab-ce
完成安装:
上面安装完成的提示就有说明,you can start your Gitlab instance by running the following command: sudo gitlab-ctl reconfigure
#gitlab-ctl reconfigure
附上GitLab常用命令:
常用命令 |
说明 |
---|---|
sudo gitlab-ctl reconfigure | 重新加载配置,每次修改/etc/gitlab/gitlab.rb文件之后执行 |
sudo gitlab-ctl status | 查看 GitLab 状态 |
sudo gitlab-ctl start | 启动 GitLab |
sudo gitlab-ctl stop | 停止 GitLab |
sudo gitlab-ctl restart | 重启 GitLab |
sudo gitlab-ctl tail | 查看所有日志 |
sudo gitlab-ctl tail nginx/gitlab_acces.log | 查看 nginx 访问日志 |
sudo gitlab-ctl tail postgresql | 查看 postgresql 日志 |
基本使用默认配置,不去修改什么 /etc/gitlab/gitlab.rd配置。 什么改端口啊,80端口映射啊,都没有操作。
#sudo gitlab-ctl restart 或者 gitlab-ctl start
#sudo gitlab-ctl status //看下状态
默认等于地址,直接在浏览器输入 虚拟机的ip地址。(没有什么http的前缀)。我们期望登陆的是默认的管理员账号,据说默认就是 系统的root 账号,结果碰到了点麻烦,个人在装这个Ubuntu的时候也没有设置过root账号的密码啊,然后使用sudo passwd root 设置了一个简单的密码 ”1“, 结果还是无法通过 root + 1登陆。 直接在界面的register 注册了个新的账号(本地这个gitlab服务) ,然后使用这个新账号登陆会提示,注册是成功了,但是需要管理员的批准。。。。
抄一波:原文链接:https://blog.csdn.net/HYZX_9987/article/details/119929043
gitlab-rails console -e production
user = User.where(username:"root").first
user.password = "新密码"
user.password_confirmation ="再次确认密码"
user.save!
————————————————
版权声明:本文为CSDN博主「_七里香」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/HYZX_9987/article/details/119929043
看样子这类似于一个sql修改数据库一样的命令操作,这里还要求密码必须至少8个字符。 (个人用的sudo -i root权限运行命令gitlab-rails console production,需要加上-e参数)
剩下的事情,就是添加ssh key ,git仓库了的操作了。
demo环境搭建完