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