Git 在 iOS 開發(fā)中的使用

安裝(macOS)

1.安裝Homebrew :軟件包管理器,用于管理一些開源軟件在 Mac OS X 上的安裝和升級

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.安裝完成后蔫耽,執(zhí)行g(shù)it安裝命结耀。

$ brew install git 

3.Git是分布式版本控制系統(tǒng),所以匙铡,每個機器都必須自報家門图甜;注意git config命令的--global參數(shù),用了這個參數(shù)鳖眼,表示你這臺機器上所有的Git倉庫都會使用這個配置黑毅,當(dāng)然也可以對某個倉庫指定不同的用戶名和Email地址(不要 --global )

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

簡單使用

1.把一個文件目錄變成Git可以管理的倉庫

$ cd ~/Desktop/
$ mkdir test
$ cd test
$ git init

2.添加文件提交到倉庫(需把文件放在git倉庫目錄下;-m后面輸入的是本次提交的說明具帮,最好是有閱讀意義的英文)

$ git add eadme.txt
$ git commit -m "wrote a readme file"

3.查看倉庫當(dāng)前的狀態(tài)博肋,哪些文件被修改

$ git status

4.查看文件被修改的具體地方

$ git diff read.txt

5.查看提交的歷史記錄(-pretty=online 表示只看主要信息,提交的版本號及commit說明蜂厅,不要也行)

$ git log -pretty=oneline
$ git reflog (查看所有commit記錄)

6.回退到上一次提交的版本 或 任意一個版本(commit_id 沒必要寫全)

$ git reset --hard HEAD^
$ git reset --hard commit_id

7.暫存區(qū) 和 緩存區(qū)

git add把文件添加進去匪凡,實際上就是把文件修改添加到暫存區(qū);
git commit提交更改掘猿,實際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支



git diff HEAD -- readme.txt:命令可以查看readme.txt文件在工作區(qū)和版本庫里面最新版本的區(qū)別

git checkout -- readme.txt:把readme.txt文件在工作區(qū)的修改全部撤銷
git checkout其實是用版本庫里的版本替換工作區(qū)的版本病游,無論工作區(qū)是修改還是刪除,都可以“一鍵還原”

git reset HEAD file:可以把暫存區(qū)的修改撤銷掉

刪除文件:git rm刪掉稠通,并且git commit

中級使用

1.本地倉庫關(guān)聯(lián)遠(yuǎn)程倉庫(GitHub)

$ git remote add origin git@github.com:NGjiapeche/UpcodebySwift.git
$ git remote -v (查看是否關(guān)聯(lián)遠(yuǎn)程倉庫)

2.本地庫的內(nèi)容推送到遠(yuǎn)程(第一次推送master分支時衬衬,加上了-u參數(shù),在以后的推送或者拉取時就可以簡化命令)

$ git push -u origin maste

3.從遠(yuǎn)程庫克隆

$ gir clone git@github.com:NGjiapeche/UpcodebySwift.git

4.創(chuàng)建dev分支改橘,然后切換到dev分支

$ git checkout -b dev (等于兩面2個命令)
$ git branch dev  (創(chuàng)建分支)
$ git checkout dev  (切換到分支)
$ git branch -a (查看所有分支)
$ git branch -d dev (刪除dev分支)
$ git branch -D dev  (強行刪除未合并過的分支)

6.把dev分支的工作成果合并到master分支(在master分支下操作)

$ git merge dev (Fast forward)
$ git merge --no-ff -m "merge with no-ff" dev (普通模式合并滋尉,合并后的歷史有分支,能看出來曾經(jīng)做過合并)

7.查看分支合并圖

$ git log --graph --pretty=oneline --abbrev-commit

8.當(dāng)dev分支還無法提交時飞主,需要去修復(fù)緊急bug分支時(把當(dāng)前工作現(xiàn)場“儲藏”起來狮惜,等以后恢復(fù)現(xiàn)場后繼續(xù)工作,git status 是干凈的)

$ git stash 
$ git stash list
$ git stash pop (回復(fù)工作現(xiàn)場碌识;等于下面2條指令)
$ git stash apply(恢復(fù))
$ git stash drop(刪除stash內(nèi)容)

9.本地分支關(guān)聯(lián)遠(yuǎn)程倉庫分支

$ git branch --set-upstream "branch-name" origin/"branch-name" (本地和遠(yuǎn)程都有分支碾篡,未關(guān)聯(lián))
$ git checkout -b "branch-name" origin/"branch-name"(遠(yuǎn)程有分支時,在本地新建分支時關(guān)聯(lián)遠(yuǎn)程分支)
$ git push origin "branch-name" (遠(yuǎn)程沒有分支時筏餐,在本地分支push時創(chuàng)建新分支)

10.拉取遠(yuǎn)程倉庫文件

$ git pull 

高級使用

很多Git命令只有那些專家才明白开泽,這些命令可能你一輩子都不會用到。既然Git是一個工具魁瞪,就沒必要把時間浪費在那些“高級”但幾乎永遠(yuǎn)不會用到的命令上穆律。一旦你真的非用不可了惠呼,到時候再自行Google或者請教專家也未遲。

github相關(guān)使用

創(chuàng)建一個遠(yuǎn)程倉庫
  1. 新建一個倉庫


  2. 你的本地Git倉庫和GitHub倉庫之間的傳輸是通過SSH加密的峦耘,需要添加SSH Key公鑰



  3. 獲取 SSH Key
    ~/.ssh目錄罢杉,里面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對贡歧,id_rsa是私鑰,不能泄露出去赋秀,id_rsa.pub是公鑰利朵,可以放心地告訴任何人

$ cd ~/
$ ssh-keygen -t rsa -C "youremail@example.com" (提示你輸入密碼,沒必要輸入密碼只需一直回車即可)
$ cd ~/.ssh
$ cat id_rsa.pub (然后直接選定copy)
參與別人的開源項目
  1. Fork任意開源倉庫猎莲;

  2. 自己擁有Fork后的倉庫的讀寫權(quán)限绍弟;

  3. 可以推送pull request給官方倉庫來貢獻代碼。(你可以fork我的倉庫試一把pull request)

如果你不喜歡用命令行著洼,推薦git界面軟件:SourceTree

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末樟遣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子身笤,更是在濱河造成了極大的恐慌豹悬,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件液荸,死亡現(xiàn)場離奇詭異瞻佛,居然都是意外死亡,警方通過查閱死者的電腦和手機娇钱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門伤柄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人文搂,你說我怎么就攤上這事适刀。” “怎么了煤蹭?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵笔喉,是天一觀的道長。 經(jīng)常有香客問我疯兼,道長然遏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任吧彪,我火速辦了婚禮待侵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘姨裸。我一直安慰自己秧倾,他們只是感情好怨酝,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著那先,像睡著了一般农猬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上售淡,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天斤葱,我揣著相機與錄音,去河邊找鬼揖闸。 笑死揍堕,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的汤纸。 我是一名探鬼主播衩茸,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贮泞!你這毒婦竟也來了楞慈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤啃擦,失蹤者是張志新(化名)和其女友劉穎囊蓝,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體议惰,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡慎颗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了言询。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俯萎。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖运杭,靈堂內(nèi)的尸體忽然破棺而出夫啊,到底是詐尸還是另有隱情,我是刑警寧澤辆憔,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布撇眯,位于F島的核電站,受9級特大地震影響虱咧,放射性物質(zhì)發(fā)生泄漏熊榛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一腕巡、第九天 我趴在偏房一處隱蔽的房頂上張望玄坦。 院中可真熱鬧,春花似錦、人聲如沸煎楣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽择懂。三九已至喻喳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間困曙,已是汗流浹背表伦。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留慷丽,地道東北人绑榴。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像盈魁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子窃诉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

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