一。安裝linux
1.新建 /etc/yum.repos.d/gitlab-ce.repo,添加如下內容git
1
2
3
4
5
6
7
|
[gitlab-ce]
name=gitlab-ce
baseurl=http:
//mirrors
.tuna.tsinghua.edu.cn
/gitlab-ce/yum/el6
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https:
//packages
.gitlab.com
/gpg
.key
|
2.安裝步驟:瀏覽器
1
2
3
4
5
6
7
8
9
10
|
# 安裝依賴包
yum
install
curl openssh-server openssh-clients postfix cronie
# 啓動 postfix 郵件服務
service postfix start
# 檢查 postfix
chkconfig postfix on
# 安裝 GitLab 社區版
yum
install
gitlab-ce
# 初始化 GitLab
gitlab-ctl reconfigure
|
添加訪問的 host,修改/etc/gitlab/gitlab.rb
的external_url
bash
1
|
external_url
'http://git.test.com'
|
每次修改/etc/gitlab/gitlab.rb
,都要運行如下命令,讓配置生效ssh
1
|
gitlab-ctl reconfigure
|
在瀏覽器打開網址http://git.test.com
,登錄。默認管理員:curl
用戶名: root
密碼: 5iveL!fe svn
二。 linux客戶端調用gitlab:工具
1. 打開Git Bash
命令行工具,執行命令ssh-keygen -t rsa -C Email-Addresss
生成一個密鑰對。gitlab
2.登陸到GitLab,點擊右上角你的用戶頭像,點擊Edit Profile settings
,點擊SSH Keys
,點擊Add SSH Key
,填寫Title
欄,post
複製用戶目錄下.ssh/id_rsa.pub
文件的內容到Key
,點擊Add Key
。
3. 點擊右上角的New project
,填寫完成後點擊Create project
新建一個倉庫,點擊Activity
,點擊SSH
後複製SSH
邊上欄裏的地址。
4. 打開Git Bash
命令行工具,切換到一個合適的目錄,使用命令git clone 剛纔複製的URL
克隆建立的倉庫。
5.進入目錄cd 倉庫名
,執行命令git config --global user.email your-email
,
git config --global user.name your-name
,設置你的我的信息。
6.執行命令: echo "#Description" > README.md
,添加一個文件 git status
,查看當前狀態,發現有未跟蹤文件 git add .
,當前目錄全部文件添加到暫存區 git diff
,比較當前工做區和暫存區有何不一樣 git status
,查看當前狀態,發現有文件未提交 git commit -m "註釋"
,把暫存區內容提交到本地倉庫 git push -u origin master
,把本地倉庫的提交推送到遠程倉庫 git log
,查看提交日誌
git branch
,顯示全部分支 git branch b1
,從當前分支建立一個叫b1的分支 git checkout b1
,切換到b1分支 git checkout -b b1
,至關於以上兩條命令的組合 git checkout master
,切換到master主分支 git merge b1
,把b1分支的代碼合併到master上 git branch -d b1
,刪除b1分支,不能在被刪除分支上執行git tag t1
,從當前分支建立一個名爲t1的標籤 git tag -d t1
,刪除名爲t1的標籤GitLib有五種身份權限,分別是:
- Owner 項目全部者,擁有全部的操做權限
- Master 項目的管理者,除更改、刪除項目元信息外其它操做都可
- Developer 項目的開發人員,作一些開發工做,對受保護內容無權限
- Reporter 項目的報告者,只有項目的讀權限,能夠建立代碼片段
- Guest 項目的遊客,只能提交問題和評論內容
具體參見GitLab權限,爲項目添加成員時可指定成員的身份權限。
- 每次提交必須寫明註釋,若是是修復Bug,請加上Bug號
- 建立特性分支,名稱要以
f-
開頭,加上特性名- 建立發佈分支,名稱要以
r-
開頭,加上預發佈版本號- 建立Bug修復分支,名稱要以
b-
開頭,加上Bug號- 建立標籤,名稱要以
t-
開頭,加上發佈版本號- 合併分支時必須使用
--no-ff
參數,以保留合併歷史軌跡
總體流程圖:
從develop分支建立,用於特性開發,完成後要合併回develop分支。
操做過程: git checkout -b newfeature develop
,從develop分支建立newfeature特性分支 git checkout develop
,開發完成後,須要合併回develop分支,先切換到develop分支 git merge --no-ff newfeature
,合併回develop分支,必須加--no-ff
參數 git branch -d newfeature
,刪除特性分支 git push origin develop
,把合併後的develop分支推送到遠程倉庫
分支關係相似下圖:
從develop分支建立,用於預發佈版本,容許小bug修復,完成後要合併回develop和master。
操做過程: git checkou -b release-1.2 develop
,建立一個發佈分支 git checkout master
,切換到master分支,準備合併 git merge --no-ff release-1.2
,把release-1.2分支合併到master分支 git tag 1.2
,從master分支打一個標籤 git checkou develop
,切換到develop分支,準備合併 git merge --no-ff release-1.2
,把release-1.2分支合併到develop分支 git branch -d release-1.2
,刪除這個發佈分支
從master分支建立,用於生產環境上的Bug修復,完成後要合併回develop和master。
操做過程: git checkout -b hotfix-1.2.1 master
,從master分支建立一個Bug修復分支 git checkout master
,切換到master分支,準備合併 git merge --no-ff hotfix-1.2.1
,合併到master分支 git tag 1.2.1
,爲master分支建立一個標籤 git checkout develop
,切換到develop分支,準備合併 git merge --no-ff hotfix-1.2.1
,合併到develop分支 git branch -d hotfix-1.2.1
,刪除hotfix-1.2.1分支
分支關係相似下圖:
適用於小型項目,參與人員較少的項目,每一個開發者都可向倉庫推送代碼
適用於大型項目,參與人員較多,而且等級劃分嚴明,代碼須要逐級審覈的項目
僅核心開發人員能夠向倉庫推送代碼,開發人員只能從倉庫拉取代碼,開發人員的代碼需先推送給核心開發人員審覈經過後,合併以後才能推送,通常狀況下是使用GitHub
的Pull Request
的方式