gitlab详解
a.安装并创建用户
yum -y install curl policycoreutils policycoreutils-python openssh-server openssh-clients postfix rpm -ivh gitlab-ce-10.0.4-ce.0.el7.x86_64.rpm vim /etc/gitlab/gitlab.rb external_url 'http://10.0.0.26' # 外网ip vi /var/opt/gitlab/nginx/conf/gitlab-http.conf server { listen *:81; server_name 10.0.0.26; } gitlab-ctl reconfigure gitlab-ctl start
访问http://10.0.0.26:81,默认用户:root,5iveL!fe
设置用户名、密码,创建三个用户zhanghongqi、mafei、lixiang,
创建一个组Linkdood-kaifa
把master权限给zhanghongqi
创建一个项目,owner:Linkdood-kaifa,name:php-login,项目地址为:git@10.0.0.26:Linkdood-kaifa/php-login.git
b.授权
给lixiang授权为组用户,给mafei只授权为项目用户,组用户能看见这个组下的所有项目,项目用户是哪个项目里有他,他才能看到.
Add user to the group:添加lixiang为组用户,编辑用户,设置初始密码--lixiang123456
点击Manage Access,Add user to project:添加mafei为项目用户,编辑用户,设置初始密码--mafei123456
用lixiang这个用户第一次登陆时,需要重置密码--lixiang123,点击Profile Settings上传SSH Keys
在10.0.0.25上生成密钥对,将公钥上传到gitlab,该公钥具有全局唯一性,然后在10.0.0.25上就能以ssh的方式clone项目代码
c.使用
以root用户登陆gitlab,创建一个readme文件并提交,会自动创建一个分支:master-default-protected
deploy key的作用是让某个客户端只能下载代码,不能上传代码,譬如Jenkins.
在Milestone中创建里程碑,以zhanghongqi进入项目,为每个开发者分配任务,创建issue;给lixiang分发两个issue:首页和新闻,
演示开发及提交过程:
git clone git@10.0.0.26:Linkdood-kaifa/php-login.git git checkout -b firstpage mkdir first cd first/ echo "<h1>This is first page</h1>" >> index.html git add . git commit -m "shouye" git push origin firstpage
lixiang开发完首页功能之后,登陆gitlab发出merge请求,Create Merge Request;Assignee:zhanghongqi.
zhanghongqi登陆gitlab,Accept Merge Request接受融合请求.
master融合分支firstpage之后,lixiang这个开发者如何将本地的master更新到最新:
git checkout master git pull # 更新本地master # 只有zhanghongqi具有master权限,只有他能以这样的方式提交: git push origin master # 其他没有master权限的人只能从分支提交. # 用规定的语句去关闭zhanghongqi创建的2号issue git commit -m "close #2"
解决问题:
git clone ssh://git@10.0.0.26:Linkdood-yw/Linkdood.git ssh方式:让你输入密码时,说明你没有上传公钥 git clone http://10.0.0.26/Linkdood-yw/Linkdood.git http方式:输入正确的用户名密码则可以下载 windows上使用git添加远程仓库 cd /e/ mkdir linkdood cd linkdood/ ssh-keygen.exe # 公钥位置 /c/Users/daydayup/.ssh/id_rsa.pub,将公钥上传到gitlab git init git config --global user.name "lixiang" git config --global user.email "lixiang@163.com" git config --list git remote -v # 查看远程仓库信息
d.备份和恢复
gitlab_rails['backup_path'] = "/data/backups/gitlab" gitlab_rails['backup_keep_time'] = 604800 mkdir -p /data/backups/gitlab gitlab-ctl reconfigure ls -ld /data/backups/gitlab drwx------ 2 git root 6 Dec 27 19:43 /data/backups/gitlab # gitlab已经帮你设置好了权限,下面这一步可有可无 chown -R git.git /data/backups/gitlab # 添加备份gitlab定时任务 0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create # 翻译时间戳 1545911517_gitlab_backup.tar date -d @1545911517-->Thu Dec 27 19:51:57 CST 2018 # 在gitlab上删除项目,恢复,停止数据写入服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq gitlab-rake gitlab:backup:restore BACKUP=1545911517
邮件配置
gitlab_rails['time_zone'] = 'Asia/Shanghai' gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = 'lixiang@126.com' gitlab_rails['gitlab_email_display_name'] = 'gitlab' gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.126.com" gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = "lixiang" gitlab_rails['smtp_password'] = "your_password" gitlab_rails['smtp_domain'] = "126.com" gitlab_rails['smtp_authentication'] = "login"
面试之简历很重要:https://blog.csdn.net/X8i0Bev/article/details/85151460
发现公司有这8个现象,建议你慎重考虑;'你还有什么想问的?'面试官最想听到的答案是什么?