最近成功的在公司部署了gitlab,鑑於同窗們還不會使用,這裏寫篇博客說明下。若是想安裝gitlab的話,須要一些linux的基礎知識,我在這裏記錄了我安裝的參考《http://www.cnbluebox.com/?p=378》linux
鑑於有同窗還沒用過git,就先介紹一下git吧。git就是一種版本控制工具。說到版本控制,你們可能就想到了svn。可是二者有着本質的區別。git
svn是集中化的版本控制系統, 只有一個單一的集中管理的服務器,保存全部文件的修訂版本,而協同工做的人們都經過客戶端連到這臺服務器,取出最新的文件或者提交更新。服務器
git是分佈式的版本控制系統, 每個終端都是一個倉庫,客戶端並不僅提取最新版本的文件快照,而是把原始的代碼倉庫完整地鏡像下來。每一次的提取操做,實際上都是一次對代碼倉庫的完整備份。app
集中式版本控制: dom
分佈式版本控制: ssh
點擊導航條上的 「+」 就能夠進入建立工程頁面分佈式
這裏面很簡單,主要講兩個地方:svn
這個選擇是用來決定這個工程所屬的,能夠選User爲你本身。或者選擇組,這個會影響到後面工程的url。例如我選擇了組suning建立工程SuningTest、 那麼這個工程就會在這個組內可見,那麼訪問路徑就是https://domain.com/suning/suningtest工具
權限等級分三種:gitlab
git倉庫之間的代碼傳輸協議主要使用ssh協議。而通常搭建gitlab的時候使用的git用戶是沒有密碼的,所以直接ssh是不能登陸的,就須要使用ssh-keygen上傳公鑰,使用非對稱加密傳輸。下面講述如何上傳你的ssh公鑰:
在終端中敲下面的命令,第一步會生成一對私鑰和公鑰,分別存在 ~/.ssh/id_rsa
和~/.ssh/id_rsa.pub
中。第二步查看公鑰字符串。
ssh-keygen -t rsa -C "$your_email" cat ~/.ssh/id_rsa.pub
在面板上依次點擊Profile Settings –> SSH Keys –> Add SSH Keys。而後把上一步中的id_rsa.pub
中的內容拷貝出來粘貼到輸入框中,保存。
完成上面兩步以後就成功的添加了sshkey了,而後就能夠上傳代碼了。
若是你已經使用過git了,那麼這一步對你來講能夠跳過了。總體來講比較簡單的。下面的$project_root
表明工程根目錄
cd $project_root
git init
git add .
git commit -m 'init commit'
git remote add origin git@example.com:namespace/projectname.git
git push origin master
在svn中,咱們都叫checkout. 把代碼checkout到本地。而git中咱們叫克隆,克隆會把整個倉庫都拉到本地。
如,我要把剛纔的工程再clone到本地。
git clone git@example.com:namespace/projectname.git
有一些文件或文件夾是咱們不想要被版本控制的,好比.DS_Store build\ xcuserdata thumbs.db
,git提供了一種忽略的方案。
在項目根目錄下建立.gitignore文件,而後把須要忽略的文件或文件夾名寫進去。這樣就能夠忽略這些文件受版本控制啦。
svn也提供了這樣忽略的方案,svn也能夠設置全局忽略。svn的此配置放在~/.subversion/config
中global-ignores的值。
經過設置ignore,咱們能夠實現git和svn雙管理哦,就是在svn忽略.git文件夾,在gitignore中忽略.svn文件夾,有興趣的同窗能夠試試
git管理下的文件有3種狀態,以下圖:
git博大精深,我的感受,不論是從其強大的功能上,仍是從其實現方案上來說比svn強大不少。這裏貼個學習連接吧,這一系列講的很是全面很是詳細:
若是說你不喜歡命令行的使用方式,你也可使用圖形界面工具SoureTree: http://www.sourcetreeapp.com/ 界面簡潔,使用方便,功能強大。
貼個預覽: