Git是版本控制系統,Github是在線的基於Git的代碼託管服務。
GitHub是2008年由Ruby on Rails編寫而成。GitHub同時提供付費帳戶和免費帳戶。這兩種帳戶均可以建立公開的代碼倉庫,只有付費帳戶能夠建立私有的代碼倉庫。
Gitlab解決了這個問題, 能夠在上面建立免費的私人repo。
gitlab server搭建過程
安裝相關依賴包
[root@node04 ~]# yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python
啓動郵件服務
[root@node04 ~]# systemctl start postfix
[root@node04 ~]# systemctl enable postfix
下載RPM包
[root@node04 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.7.2-ce.0.el7.x86_64.rpm
[root@node04 ~]# rpm -ivh gitlab-ce-10.7.2-ce.0.el7.x86_64.rpm
安裝完成出現如下界面
node
gitlab的配置文件 /etc/gitlab/gitlab.rb, 編輯以下:
[root@node04 ~]# vim /etc/gitlab/gitlab.rb
修改域名或者IP地址
[root@node04 ~]# grep "^external_url" /etc/gitlab/gitlab.rb
external_url 'http://192.168.150.140'
使用gitlab-ctl reconfigure 自動配置,並安裝數據庫,初始化信息,以下所示(第一次使用配置時間較長):
使用gitlab-ctl start 啓動gitlab服務,以下所示:
[root@node04 ~]# gitlab-ctl start
[root@node04 ~]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 37224 root 7u IPv4 82122 0t0 TCP :http (LISTEN)
nginx 37225 gitlab-www 7u IPv4 82122 0t0 TCP :http (LISTEN)python
修改配置文件,添加smtp郵件功能
[root@node04 ~]# vim /etc/gitlab/gitlab.rb
[root@node04 ~]# grep -P "^[^#].*smtp_|user_email|gitlab_email" /etc/gitlab/gitlab.rb
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'] = ''
user['git_user_email'] = "gitlab@#{node['fqdn']}"
[root@node04 ~]# gitlab-ctl reconfigure
重啓gitlab
[root@node04 ~]# gitlab-ctl start
ok: run: gitaly: (pid 37574) 298s
ok: run: gitlab-monitor: (pid 37604) 295s
ok: run: gitlab-workhorse: (pid 37563) 299s
ok: run: logrotate: (pid 37241) 380s
ok: run: nginx: (pid 37224) 386s
ok: run: node-exporter: (pid 37306) 368s
ok: run: postgres-exporter: (pid 37701) 293s
ok: run: postgresql: (pid 36977) 436s
ok: run: prometheus: (pid 37613) 293s
ok: run: redis: (pid 36917) 442s
ok: run: redis-exporter: (pid 37415) 350s
ok: run: sidekiq: (pid 37195) 394s
ok: run: unicorn: (pid 37157) 400s
使用gitlab-rails console命令進行發送郵件測試,以下所示
[root@node04 ~]# gitlab-rails console
nginx
gitlab的使用
在瀏覽器中輸入 http://192.168.150.140/ ,而後 change password: ,並使用root用戶登陸 便可 (後續動做根據提示操做)
git
修改密碼也能夠:gitlab-rails console production
irb(main):001:0> user = User.where(id: 1).first // id爲1的是超級管理員
irb(main):002:0>user.password = 'yourpassword' // 密碼必須至少8個字符
irb(main):003:0>user.save! // 如沒有問題 返回true
exit // 退出redis
建立 group ,組名爲pla01t-sp ,以下所示:
admin are -> settings -> Sign-up Restrictions 去掉鉤鉤,而後拉到最下面保存,從新登陸
sql
建立用戶Tompson以下所示:
一樣的方法,再建立Eric 、Hellen 用戶。用戶添加完畢後,gitlab會給用戶發一封修改密碼的郵件,各用戶須要登陸本身的郵箱,並點擊相關的連接,設置新密碼。
將用戶添加到組中,並指定Tompson爲本組的owner:
一樣的方法將用戶Eric、Hellen也添加到組中,並指定他們爲Developer:
使用Tompson用戶的身份與密碼登陸到gitlab界面中,並建立Project ,以下所示:
大部分公司的處理流程以下:數據庫
PM在gitlab建立任務,分配給開發人員
開發人員領取任務後,在本地使用git clone拉取代碼庫
開發人員建立開發分支(git checkout -b dev),並進行開發
開發人員完成以後,提交到本地倉庫(git commit )
開發人員在gitlab界面上申請分支合併請求(Merge request)
PM在gitlab上查看提交和代碼修改狀況,確認無誤後,確認將開發人員的分支合併到主分支(master)
開發人員在gitlab上Mark done確認開發完成,並關閉issue。這一步在提×××並請求時能夠經過描述中填寫」close #1″等字樣,能夠直接關閉issuevim