centos 7安裝gitlab及使用

GitLab 概述:
  是一個利用 Ruby on Rails 開發的開源應用程序,實現一個自託管的 Git 項目倉庫,可通過 Web界面迚行訪問公開的戒者私人項目。Ruby on Rails 是一個可以使你開發、部署、維護 web 應用程序變得簡單的框架。
GitLab 擁有不 Github 類似的功能,能夠瀏覽源代碼,管理缺陷和註釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個文件歷叱庫。它還提供一個代碼片段收集功能可以輕鬆實現代碼複用,便於日後有需要的時候迚行查找。
GitLab 中文網:https://www.gitlab.cc/installation/#centos-7

GitHub 和 GitLab 的區別:
  相同點: 二者都是基於 web 的 Git 倉庫,在很大程度上 GitLab 是仿照 GitHub 來做的,它們都提供了分享開源項目的平臺,爲開發團隊提供了存儲、分享、發佈和合作開發項目的中心化雲存儲的場所。
不同點:   1、GitHub 如果要使用私有倉庫,超過 3 個人就收費。GitLab 可以在上面創建私人的克費倉庫。   2、GitLab 讓開發團隊對他們的代碼倉庫擁有更多的控制,相比於 GitHub,它有丌少的特色:允許免費設置倉庫權限;允許用戶選擇分享一個 project 的部分代碼;允許用戶設置 project 的獲取權限,進一步的提升安全性;可以設置獲取到團隊整體的改進進度;通過 innersourcing 讓不在權限範圍內的人訪 問不到該資源。   總結:從代碼私有性方面來看,有時公司並丌希望員工獲取到全部的代碼,這個時候 GitLab 無疑是更好的選擇。但對於開源項目而言,GitHub 依然是代碼託管的首選。 git 相關概念: git 是一種版本控制系統,是一個命令,是一種工具 gitlib 是用於實現 git 功能的開發庫 github 是一個基於 git 實現的在線代碼託管倉庫,包含一個網站界面,向互聯網開放 gitlab 是一個基於 git 實現的在線代碼倉庫託管軟件,一般用於在企業內部網絡搭建 git 私服 注: gitlab-ce 社區版 ; gitlab-ee 是企業版,收費
1. 安裝Gitlab組件:(需要最少6G內存,內存不足後期訪問報502)
        yum install curl policycoreutils openssh-server openssh-clients postfix -y
    默認使用postfix發送郵件,關閉防火牆,啓動postfix及開機自啓動

2. 安裝gitlab
        https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.3-ce.0.el7.x86_64.rpm(迅雷下載)
        或者配置yum源,使用yum直接安裝
    vim /etc/yum.repos.d/gitlab.repo
         [gitlab-ce] 
        name=gitlab-ce 
        baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7 
        repo_gpgcheck=0 
        gpgcheck=0 
        enabled=1 
        gpgkey=https://packages.gitlab.com/gpg.key  
    yum install gitlab-ce -y
    安裝完成之後,修改gitlab訪問地址:
        vim /etc/gitlab/gitlab.rb
        修改爲13行:external_url 'http://192.168.0.61'
        gitlab-ctl reconfigure #重新配置應用程序。修改了 gitlab 服務配置文件後,都需要執行一下這個命令。讓各個服務的配置文件,重新加載一下配置文件。
    gitlab-ctl status查看狀態
    netstat -anp | grep 80查看nginx

3. 訪問gitlab:192.168.0.61
        第一次登錄 gitlab,需要爲 root 用戶修改密碼,root 用戶也是 gitlab 的超級管理員,輸入新密碼:密碼長度最少8位
        改完密碼登錄之後可關閉gitlab註冊功能和註冊新用戶,Register註冊新用戶,可使用超級管理員關閉此功能
4. 管理gitlab
        啓動/關閉/重啓/重新加載配置文件:gitlab-ctl  start/stop/restart/reconfigure
        gitlab主配置文件:/etc/gitlab/gitlab.rb    #自定義郵件服務等
        日誌地址:/var/log/gitlab/     #對應服務
        服務地址:/var/opt/gitlab      #對應各服務的主目錄
        倉庫地址:/var/opt/gitlab/git-data   #記錄項目倉庫等提交信息
    settings--> Sign-up restrictions-->取消打勾-->Save,即在啓用註冊的選項取消

5. centos 7部署*** gitlab
        下載最新漢化包:
            git clone https://gitlab.com/xhang/gitlab.git
        查看gitlab版本:rpm -qa | grep gitlab
        下載對應漢化包:
             git clone https://gitlab.com/xhang/gitlab.git -b v11.7.0-zh
        關閉gitlab服務:gitlab-ctl stop
             /usr/bin/cp -rvf /root/gitlab/* /opt/gitlab/embedded/service/gitlab-rails/   #直接把漢化好的文件替換了源文件中 gitlab-rails 下的文件。gitlab-rails 下面存放的都是 web界面相關的文件
6. 新建項目-->選擇項目路勁-->項目名稱-->權限
    新建一個用戶:設置-->新建用戶-->用戶名-->郵箱-->默認普通用戶
    編輯/etc/gitlab/gitlab.rb 文件,配置 STMP 郵件發送服務。前提你的郵件已經開通 stmp/pop3收發功能
        vim /etc/gitlab/gitlab.rb #在 430 行插入
        432 gitlab_rails['smtp_enable'] = true
        433 gitlab_rails['smtp_address'] = "smtp.163.com"
        434 gitlab_rails['smtp_port'] = 25
        435 gitlab_rails['smtp_user_name'] = "[email protected]"
        436 gitlab_rails['smtp_password'] = "自己郵箱的密碼"
        437 gitlab_rails['smtp_authentication'] = "login"
        438 gitlab_rails['smtp_enable_starttls_auto'] = true
        439 gitlab_rails['smtp_tls'] = true
        440 gitlab_rails['gitlab_email_from'] = '[email protected]'
    設置 gitlab 開機自啓
        systemctl enable gitlab-runsvdir.service
        systemctl restart gitlab-runsvdir.service  
7. 將剛新建用戶添加到羣主,身份主程序員 
    在新建的項目中添加一個index.html文件
8. 在客戶端安裝git
       yum install -y git
        代碼下載地址:http://192.168.0.61/root/apache.git
        提示輸入用戶和密碼-->查看目錄apache下的文件
    一般在新的系統上,我們都需要先配置下自己的 Git 工作環境。配置工作只需一次,以後升級時還會沿用現在的配置,~/.gitconfig 文件:用戶目錄下的配置文件只適用於該用戶。若使用 git config 時用 --global 選項,讀寫的就是這個文件
        git config --global user.name "root"
        git config --global user.email "[email protected]"   #如遇提交代碼至暫存區和gitlab服務器報錯:fatal: Not a git repository (or any of the parent directories): .git可執行git init之後重新提交
        cat ~/.gitconfig   #上面兩條命令會生成~/.gitconfig,    
    git常用命令:
        git config --global user.name 「name「 #設置全局用戶名
        git config --global user.email mail #設置全局郵箱
        git config --global --list #列出用戶全局設置
        git add /root/apache/index.html #添加文件到暫存區
        git commit -m 「描述內容「 #提交文件到工作區
        git status #查看工作區的狀態
        git push /root/apache/index.html  #提交代碼到 git 服務器上
        git pull  #獲取代碼到本地
        git log #查看操作日誌
        vim .gitignore #定義忽略文件
        git reset --hard HEAD^ #git 版本回滾, HEAD 爲當前版本,加一個^爲上一個,^^爲上上一個版本
        git reflog # #獲取每次提交的 ID,可以使用--hard 根據提交的 ID 迚行版本回退
        git reset --hard 5ae4b06 #回退到指定 id 的版本
        git branch #查看當前所處的分支
        git checkout #切換到指定分支戒標籤
9. 拉去代碼之後:git clone http://192.168.0.61/root/apache.git
    對代碼進行修改:echo "hello world" >> apache/index.html
    提交代碼:git push apache/index.html
    提交代碼至暫存區:git commit -m "修改代碼"-->提交代碼-->git push apache/index.html-->刪除代碼-->回滾到最新版本-->git reset --hard HEAD
    創建一個新的分支:git branch bbs-->切換到新的分支,進行代碼管理-->git checkout bbs-->查看當前所在分支-->git branch-->新建一個a.txt文件-->提交至暫存區,提交代碼 git push -u origin bbs-->切換到主分支-->git checkout master-->將bbs分支的代碼合併到master-->git merge bbs-->ls apache/查看-->提交代碼到git服務器-->git push