Gitlab與Xcode的無縫連接

寫在前面:

  • 由于項目組的人事變動,由之前的多人開發(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”糠溜。


創(chuàng)建項目
  • 設(shè)置Project信息
    如果是從本地上傳,“import project from”下面的按鈕可以先不選直撤,只輸入project name和描述非竿,然后選擇可見級別,使用Gitlab應(yīng)該都是“Private”吧谋竖,Public的一般都去Github了红柱。填寫完畢點擊“Creat project”。


    設(shè)置Project信息
  • Project創(chuàng)建完成
    創(chuàng)建完成就進(jìn)入Project主頁了蓖乘,這時會看到下面有許多終端提示代碼锤悄,一會會用到。


    Project主頁
2. 設(shè)置SSH
  • 點擊右上角頭像嘉抒,選擇“Settings”


    Settings
  • 進(jìn)入設(shè)置頁面零聚,選擇“SSH Keys”,這里需要填寫SSH Key的公鑰。


    屏幕快照 2017-02-28 20.15.36.png
  • 生成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  //查看公鑰
SSH秘鑰生成

查看公鑰后顿颅,將公鑰復(fù)制出來(就是那個ssh-rsa開頭的一長串亂碼缸濒,注意包含后面的郵箱地址),填寫到剛剛打開的SSH Key設(shè)置頁面里粱腻,并設(shè)置一個方便記憶的Title庇配,填寫完畢后,點擊“Add key”绍些,SSH Key就添加成功了捞慌。

屏幕快照 2017-02-28 20.23.37.png

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ì)說明遇革。

為Project添加Git

坑No.1
需要注意卿闹,輸入commit命令后會提示輸入commit message,如下圖萝快,對終端不熟悉的同學(xué)可能要抓狂了锻霎,這里需要按s鍵進(jìn)入INSERT模式,開始輸入commit message,最后按ESC揪漩,然后輸入:wq退出commit message輸入模式

注意:建議commit message第一行輸入標(biāo)題(概要)旋恼,空一行再輸入詳細(xì)信息。當(dāng)然奄容,這是建議冰更,如果你覺得無所謂产徊,也可以隨意輸入或直接:wq跳過。

輸入commit message

坑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'  //提交改動

可以看到提交成功了


添加README文件
  • Push到Gitlab
    添加README后再重新輸入git push -u origin master,push項目到Gitlab奠衔,首次push會提示gitlab.com的真實性無法確定谆刨,輸入yes,確定即可归斤。之后gitlab.com就會被添加到已知服務(wù)器(可以在 ~/.ssh文件夾中查看到多了一個known_hosts文件痊夭,它就是存儲已知服務(wù)器的文件)。
Push到Gitlab

Push成功脏里,可以看到改動被提交到master分支她我。回到Gitlab->Project迫横,可以看到剛剛的提交記錄:


Push成功

進(jìn)入Repository查看番舆,可以看到README文件已經(jīng)正確提交了。


README正確提交
4. 脫離終端员淫,與Xcode無縫連接

接下來我們來試試脫離終端合蔽,直接用Xcode來進(jìn)行版本控制操作——用Xcode打開testProject,并添加一個方法pushTest

新增pushTest方法

選擇Source Control菜單->Commit...介返,當(dāng)然也可以用快捷鍵option + commond + c快速打開commit功能拴事。這就是為什么我拋棄其他版本控制軟件——Xcode的快捷鍵操作十分方便。

Commit

添加commit message后點擊Commit 2 Files提交改動圣蝎,注意這里也可以直接勾選左下角的Push to remote:直接push到Gitlab上刃宵,當(dāng)然push是一個耗時操作,不必每次都push徘公,也可以積攢幾次commit后再集中push到遠(yuǎn)程服務(wù)器牲证。

Commit message

Commit完畢,選擇Source Control菜單->Push...关面。

Push

彈出的對話框中選擇要push的分支坦袍,當(dāng)前是master分支,點擊Push按鈕等太。


Master分支

Push需要些時間捂齐,這和你的網(wǎng)速和提交的內(nèi)容大小有關(guān)。


Pushing changes

Push成功后缩抡,再來Gitlab看一下是否成功奠宜,可以看到test push已經(jīng)被提交。


提交成功

和Github一樣,Gitlab也可以直接查看提交的代碼片段(高亮顯示)压真。


高亮代碼片段

結(jié)語

至此娩嚼,Gitlab和Xcode的無縫連接就介紹完畢了,可以說Gitlab是非常強(qiáng)大且安全的滴肿,省去了搭建本地服務(wù)器的時間岳悟,方便多人、異地管理項目泼差,特別適合中小型公司和個人開發(fā)者使用竿音。文中若有不準(zhǔn)確的地方,請留言指出拴驮,我會隨時修改,謝謝柴信!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末套啤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子随常,更是在濱河造成了極大的恐慌潜沦,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绪氛,死亡現(xiàn)場離奇詭異唆鸡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)枣察,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門争占,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人序目,你說我怎么就攤上這事臂痕。” “怎么了猿涨?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵握童,是天一觀的道長。 經(jīng)常有香客問我叛赚,道長澡绩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任俺附,我火速辦了婚禮肥卡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昙读。我一直安慰自己召调,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著唠叛,像睡著了一般只嚣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上艺沼,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天册舞,我揣著相機(jī)與錄音,去河邊找鬼障般。 笑死调鲸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的挽荡。 我是一名探鬼主播藐石,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼定拟!你這毒婦竟也來了于微?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤青自,失蹤者是張志新(化名)和其女友劉穎株依,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體延窜,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡恋腕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逆瑞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片读宙。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡洼怔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疗我,我是刑警寧澤拂苹,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布艇肴,位于F島的核電站估灿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏出爹。R本人自食惡果不足惜庄吼,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望严就。 院中可真熱鬧总寻,春花似錦、人聲如沸梢为。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至祟印,卻和暖如春肴沫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蕴忆。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工颤芬, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人套鹅。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓站蝠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親卓鹿。 傳聞我的和親對象是個殘疾皇子菱魔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,661評論 4 54
  • 本文以Gitlab來講解Git使用以及持續(xù)集成, 持續(xù)集成采用的是Gitlab CI. 其他代碼托管網(wǎng)站,如Git...
    x1596357閱讀 5,414評論 0 6
  • 離別和消失才是命運給予我們最宏觀的結(jié)局吟孙。 前幾日時大鵬和她母親來家里走動豌习,十多年不見樣變了好多。記得小時候大鵬常跟...
    江南是一座城閱讀 595評論 3 2
  • “我不是小偷拔疚!” 福利院的寢室里,一個九歲的女孩面對眾人的質(zhì)疑既荚,眼睛紅了一圈兒稚失。她擁有一雙水漣漣的大眼睛,靈動美麗...
    戀空1325閱讀 334評論 0 0
  • 有些家長讓孩子從小就學(xué)習(xí)繪畫、彈琴晴叨、舞蹈凿宾,就是培養(yǎng)孩子的藝術(shù)修養(yǎng)〖嫒铮可藝術(shù)修養(yǎng)是什么初厚,如何才能培訓(xùn)孩子的藝術(shù)修...
    還淚閱讀 755評論 0 1