寫在前面:
- 由于項目組的人事變動,由之前的多人開發(fā)轉(zhuǎn)為獨自開發(fā)餐抢。個人的決策比較自由现使,所以我準(zhǔn)備把項目從臨時SVN服務(wù)器轉(zhuǎn)移到Git上來低匙。Git和SVN相比的優(yōu)點我不必多說,我這里想轉(zhuǎn)移的目的主要是兩點:
1.Xcode集成的Source Control十分強(qiáng)大碳锈,從此告別其他的版本管理軟件和終端代碼顽冶,實現(xiàn)全程操作在Xcode中進(jìn)行,方便售碳、快捷强重。
2.之前的臨時服務(wù)器IP不穩(wěn)定(其實就是個人Mac搭建),經(jīng)常需要重新確認(rèn)IP地址贸人,現(xiàn)在替換到一個穩(wěn)定的服務(wù)器并且實現(xiàn)可遠(yuǎn)程訪問间景,方便回家擼代碼。
在確定以上需求之后灸姊,我找到了Gitlab拱燃,一個類似Github的版本管理系統(tǒng)。它和Github最主要的區(qū)別就是可以創(chuàng)建免費力惯、私密的個人項目碗誉,并且安全性可以得到保障。
正文:
首先安利一下Gitlab的地址:https://www.gitlab.com/父晶。
注冊登錄之類的不多說哮缺,直接進(jìn)入正題。
1. 創(chuàng)建Project
注冊登錄完畢后甲喝,選擇左上角菜單->“Projects”尝苇,就會提示你創(chuàng)建新項目,因為本文主要目的是介紹初次使用Gitlab埠胖,這里選擇“new project”糠溜。
-
設(shè)置Project信息
如果是從本地上傳,“import project from”下面的按鈕可以先不選直撤,只輸入project name和描述非竿,然后選擇可見級別,使用Gitlab應(yīng)該都是“Private”吧谋竖,Public的一般都去Github了红柱。填寫完畢點擊“Creat project”。
-
Project創(chuàng)建完成
創(chuàng)建完成就進(jìn)入Project主頁了蓖乘,這時會看到下面有許多終端提示代碼锤悄,一會會用到。
2. 設(shè)置SSH
-
點擊右上角頭像嘉抒,選擇“Settings”
-
進(jìn)入設(shè)置頁面零聚,選擇“SSH Keys”,這里需要填寫SSH Key的公鑰。
生成SSH Key
為什么要生成SSH Key隶症? 請參考:什么是SSH容诬?
如果想和Gitlab服務(wù)器正常通信,必須使用SSH Key沿腰,服務(wù)器端存儲SSH公鑰,客戶端存儲SSH私鑰狈定。
打開終端颂龙,輸入以下代碼
cd ~/.ssh //定位到ssh文件夾
提示`No such file or directory'說明還沒有創(chuàng)建ssh文件夾
mkdir ~/.ssh //創(chuàng)建ssh文件夾
ssh-keygen -t rsa -C "注冊Gitlab的email地址" //生成SSH秘鑰
注意:這里有一個坑,提示Enter file in which you save the key
的時候纽什,是提示要保存的文件措嵌,而不是文件夾,如果輸入的是文件夾芦缰,會報錯企巢。系統(tǒng)已經(jīng)默認(rèn)文件存為~/.ssh/id_rsa
,直接確認(rèn)即可。
之后提示輸入兩次passphrase
让蕾,即設(shè)置push密碼浪规,可設(shè)置,也可省略(如果設(shè)置passphrase探孝,每次push代碼到服務(wù)器時需要密碼確認(rèn))笋婿。
輸入完畢后提示創(chuàng)建成果,我們來檢查一下:
cd ~/.ssh //定位到ssh文件夾
ls -l //查看文件詳情
cat id_rsa.pub //查看公鑰
查看公鑰后顿颅,將公鑰復(fù)制出來(就是那個ssh-rsa
開頭的一長串亂碼缸濒,注意包含后面的郵箱地址),填寫到剛剛打開的SSH Key設(shè)置頁面里粱腻,并設(shè)置一個方便記憶的Title庇配,填寫完畢后,點擊“Add key”绍些,SSH Key就添加成功了捞慌。
3. 提交Project到Gitlab
- 為Project添加Git
cd "本地項目的路徑"
git init //初始化Git
git remote add origin git@gitlab.com:USERNAME/PROJECTNAME.git //將"USERNAME"和"PROJECTNAME"替換為自己的用戶名和項目名
git add . //注意add和"."之間的空格
git commit -m 'commit description' //提交改動到本地庫
git push -u origin master //push到Gitlab
注意:git commit -m 'commit description'
和git push -u origin master
命令有兩個坑,下面會詳細(xì)說明遇革。
坑No.1
需要注意卿闹,輸入commit
命令后會提示輸入commit message
,如下圖萝快,對終端不熟悉的同學(xué)可能要抓狂了锻霎,這里需要按s
鍵進(jìn)入INSERT
模式,開始輸入commit message
,最后按ESC揪漩,然后輸入:wq
退出commit message輸入模式
注意:建議commit message第一行輸入標(biāo)題(概要)旋恼,空一行再輸入詳細(xì)信息。當(dāng)然奄容,這是建議冰更,如果你覺得無所謂产徊,也可以隨意輸入或直接
:wq
跳過。
坑No.2
輸入git push -u origin master
命令后可以看到提示:
error: src refspec master does not match any.
error: failed to push some refs to 'git@gitlab.com:int1987/testProject.git'
這是因為沒有項目說明書蜀细,所以push失敗舟铜。
解決方案:
touch README //生成說明文件
git add README //添加說明文件到Git
git commit -m 'commit readme file' //提交改動
可以看到提交成功了
- Push到Gitlab
添加README后再重新輸入git push -u origin master
,push項目到Gitlab奠衔,首次push會提示gitlab.com的真實性無法確定谆刨,輸入yes,確定即可归斤。之后gitlab.com就會被添加到已知服務(wù)器(可以在~/.ssh
文件夾中查看到多了一個known_hosts
文件痊夭,它就是存儲已知服務(wù)器的文件)。
Push成功脏里,可以看到改動被提交到master分支她我。回到Gitlab->Project迫横,可以看到剛剛的提交記錄:
進(jìn)入Repository查看番舆,可以看到README文件已經(jīng)正確提交了。
4. 脫離終端员淫,與Xcode無縫連接
接下來我們來試試脫離終端合蔽,直接用Xcode來進(jìn)行版本控制操作——用Xcode打開testProject,并添加一個方法pushTest
:
選擇Source Control
菜單->Commit...
介返,當(dāng)然也可以用快捷鍵option + commond + c
快速打開commit功能拴事。這就是為什么我拋棄其他版本控制軟件——Xcode的快捷鍵操作十分方便。
添加commit message后點擊Commit 2 Files
提交改動圣蝎,注意這里也可以直接勾選左下角的Push to remote:
直接push到Gitlab上刃宵,當(dāng)然push是一個耗時操作,不必每次都push徘公,也可以積攢幾次commit后再集中push到遠(yuǎn)程服務(wù)器牲证。
Commit完畢,選擇Source Control
菜單->Push...
关面。
彈出的對話框中選擇要push的分支坦袍,當(dāng)前是master分支,點擊Push按鈕等太。
Push需要些時間捂齐,這和你的網(wǎng)速和提交的內(nèi)容大小有關(guān)。
Push成功后缩抡,再來Gitlab看一下是否成功奠宜,可以看到test push已經(jīng)被提交。
和Github一樣,Gitlab也可以直接查看提交的代碼片段(高亮顯示)压真。
結(jié)語
至此娩嚼,Gitlab和Xcode的無縫連接就介紹完畢了,可以說Gitlab是非常強(qiáng)大且安全的滴肿,省去了搭建本地服務(wù)器的時間岳悟,方便多人、異地管理項目泼差,特別適合中小型公司和個人開發(fā)者使用竿音。文中若有不準(zhǔn)確的地方,請留言指出拴驮,我會隨時修改,謝謝柴信!