在上一章
我們學(xué)習(xí)了新建git倉庫瞳脓,修改塑娇,提交,回滾的操作劫侧。今天我們要學(xué)習(xí)通過遠(yuǎn)程倉庫--github來進(jìn)行一些非常有意思的操作埋酬。
Git是分布式版本控制系統(tǒng),同一個Git倉庫,可以分布到不同的機(jī)器上奇瘦。怎么分布呢?最早劲弦,肯定只有一臺機(jī)器有一個原始版本庫耳标,此后,別的機(jī)器可以“克隆”這個原始版本庫邑跪,而且每臺機(jī)器的版本庫其實(shí)都是一樣的次坡,并沒有主次之分。
實(shí)際情況往往是這樣画畅,找一臺電腦充當(dāng)服務(wù)器的角色砸琅,每天24小時開機(jī),其他每個人都從這個“服務(wù)器”倉庫克隆一份到自己的電腦上轴踱,并且各自把各自的提交推送到服務(wù)器倉庫里症脂,也從服務(wù)器倉庫中拉取別人的提交。
完全可以自己搭建一臺運(yùn)行Git的服務(wù)器淫僻,不過現(xiàn)階段诱篷,為了學(xué)Git先搭個服務(wù)器絕對是小題大作。好在這個世界上有個叫GitHub的神奇的網(wǎng)站雳灵,從名字就可以看出棕所,這個網(wǎng)站就是提供Git倉庫托管服務(wù)的,所以悯辙,只要注冊一個GitHub賬號琳省,就可以免費(fèi)獲得Git遠(yuǎn)程倉庫。
創(chuàng)建SSH Key躲撰。在用戶主目錄下针贬,看看有沒有.ssh目錄,如果有拢蛋,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件坚踩,如果已經(jīng)有了,可直接跳到下一步瓤狐。如果沒有瞬铸,打開Shell(Windows下打開Git Bash),創(chuàng)建SSH Key:ssh-keygen -t rsa -C "youremail@example.com"
你需要把郵件地址換成你自己的郵件地址础锐,然后一路回車嗓节,使用默認(rèn)值即可,由于這個Key也不是用于軍事目的皆警,所以也無需設(shè)置密碼拦宣。如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個文件鸵隧,這兩個就是SSH Key的秘鑰對绸罗,id_rsa是私鑰,不能泄露出去豆瘫,id_rsa.pub是公鑰珊蟀,可以放心地告訴任何人。
登陸GitHub外驱,打開“settings”育灸,“SSH Keys”頁面:
然后,點(diǎn)“New SSH Key”昵宇,填上任意Title磅崭,在Key文本框里粘貼id_rsa.pub文件的內(nèi)容:
ssh
為什么GitHub需要SSH Key呢?因?yàn)镚itHub需要識別出你推送的提交確實(shí)是你推送的瓦哎,而不是別人冒充的砸喻,而Git支持SSH協(xié)議,所以蒋譬,GitHub只要知道了你的公鑰恩够,就可以確認(rèn)只有你自己才能推送。
當(dāng)然羡铲,GitHub允許你添加多個Key蜂桶。假定你有若干電腦,你一會兒在公司提交也切,一會兒在家里提交扑媚,只要把每臺電腦的Key都添加到GitHub,就可以在每臺電腦上往GitHub推送了雷恃。
最后友情提示疆股,在GitHub上免費(fèi)托管的Git倉庫,任何人都可以看到喔(但只有你自己才能改)倒槐。所以旬痹,不要把敏感信息放進(jìn)去。
如果你不想讓別人看到Git庫讨越,有兩個辦法两残,一個是交點(diǎn)保護(hù)費(fèi),讓GitHub把公開的倉庫變成私有的把跨,這樣別人就看不見了(不可讀更不可寫)人弓。另一個辦法是自己動手,搭一個Git服務(wù)器着逐,因?yàn)槭悄阕约旱腉it服務(wù)器崔赌,所以別人也是看不見的意蛀。這個方法我們后面會講到的,相當(dāng)簡單健芭,公司內(nèi)部開發(fā)必備县钥。
確保你擁有一個GitHub賬號后,我們就即將開始遠(yuǎn)程倉庫的學(xué)習(xí)慈迈。
遠(yuǎn)程推送
在github主頁上選擇“repository”然后選“new”新建倉庫
推送
目前若贮,在GitHub上的這個learngit倉庫還是空的,GitHub告訴我們吩翻,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關(guān)聯(lián)锥咸,然后狭瞎,把本地倉庫的內(nèi)容推送到GitHub倉庫。
現(xiàn)在搏予,我們根據(jù)GitHub的提示熊锭,在本地的learngit倉庫下運(yùn)行命令:
git remote add origin git@github.com:a12345rwaj/learngit.gitgit push -u origin master
郵箱名字換成自己的就可以了看看遠(yuǎn)程倉庫里是不是已經(jīng)有了我們的文件了呢~
從現(xiàn)在起,只要本地作了提交雪侥,就可以通過命令:
$ git push origin master
遠(yuǎn)程拉取
現(xiàn)在碗殷,假設(shè)我們從零開發(fā),那么最好的方式是先創(chuàng)建遠(yuǎn)程庫速缨,然后锌妻,從遠(yuǎn)程庫克隆。
首先旬牲,登陸GitHub仿粹,創(chuàng)建一個新的倉庫,名字叫g(shù)itskills:
獲取
我們勾選Initialize this repository with a README原茅,這樣GitHub會自動為我們創(chuàng)建一個README.md文件吭历。創(chuàng)建完畢后,可以看到README.md文件:
現(xiàn)在擂橘,遠(yuǎn)程庫已經(jīng)準(zhǔn)備好了晌区,下一步是用命令git clone克隆一個本地庫:
git clone git@github.com:a12345rwaj/gitskills.git
注意把Git庫的地址換成你自己的,然后進(jìn)入gitskills目錄看看通贞,已經(jīng)有README.md文件了朗若。