初步了解
關於Gitlab
Gitlab是一個利用Ruby on Rails開發的開源應用程式,實現一個自代管的Git專案倉庫,可通過Web介面進行存取公開的或者私人專案。
它擁有與GitHub類似的功能,能夠瀏覽原始碼,管理缺陷和注釋。可以管理團隊對倉庫的存取,它非常易於瀏覽提交過的版本並提供一個檔案歷史庫。團隊成員可以利用內建的簡單聊天程式(Wall)進行交流。它還提供一個代碼片段收集功能可以輕鬆實現代碼復用,便於日後有需要的時候進行尋找。
GitLab要求伺服器端採用Gitolite搭建(為了方便安裝,現已經用gitlab-shell代替Gitolite)。
關於Git
Git是一個分佈式版本控制系統。分佈式的意思是,每個人電腦上都是一份完整的代碼庫,包含了所有的代碼提交歷史。 由於Git分佈式的特點,在沒有網絡的情況下,依然可以自由地將代碼提交的本地的代碼庫中,等網絡恢復後再推送到服務器,開發更加靈活和自由。
重要概念:本地一個代碼庫,對本地文件的所有操作,最後都是提交到這個代碼庫中。同時可以設置多個遠程(remote,默認的remote通常用origin表示),當你要將代碼更新到服務器上時(稱作push),就通過設置的remote,更新到指定的服務器。
關於多個remote:例如需要同時將代碼同步到多個代碼管理倉庫,例如Github 和自己公司中內網的Gitlab。那麼可以將默認remote 設置為公司自己的源碼管理服務器,同時設置另外一個remote為Github。這樣即可以將代碼提交到自己公司的Gitlab,同時也可以提交到Github。
一些術語
Fetch(獲取),從遠程代碼庫更新數據到本地代碼庫。
注意
:Fetch只是將代碼更新到本地代碼庫,你需要檢出(check out)或與當前工作分支合併(merge)才能在你的工作目錄中看到代碼的改變。Pull(拉取),從遠程代碼庫更新數據到本地代碼庫,並與當前工作分支合併,等同於Fetch + Merge。
Push(推送),將本地代碼庫中已提交(commit)的數據推送到指定的remote,沒有commit 的數據,不會push
HEAD,指向你正在工作中的本地分支的指針
Master分支:主分支,所有提供給用戶使用的正式版本,都在這個主分支上發布。 關於分支管理的擴展閱讀
Tags(標籤):用來記錄重要的版本歷史,例如里程碑版本
Origin:默認的remote的名稱
Git clone(克隆版本庫):從服務端將項目的版本庫克隆下來
Git init(在本地初始化版本庫):在本地創建版本庫的時候使用
工作流程
對代碼進行修改
完成了某項功能,提交(commit,只是提交到本地代碼庫),1-2可以反復進行,直到覺得可以推送到服務器上時,執行3
拉取(pull,或者用獲取fetch 然後再手動合併merge)
如果存在衝突,解決衝突
推送(push),將數據提交到服務器上的代碼庫
Gitlab 可以做什麼
Gitlab 是Git 服務端的集成管理平台,提供了:
代碼託管服務
訪問權限控制
問題跟踪,bug的記錄、跟踪和討論
Wiki,項目中一些相關的說明和文檔
代碼審查,可以查看、評論代碼
Last updated
Was this helpful?