git 連接遠(yuǎn)程倉庫

一、遠(yuǎn)程倉庫的連接

遠(yuǎn)程倉庫的連接弥姻,需要有 GitHub 賬號(hào)骂倘,請(qǐng)自行注冊(cè) GitHub 賬號(hào)。由于本地 Git 倉庫和 GitHub 倉庫之間的傳輸是通過 SSH 加密的赏僧,所以大猛,需要一點(diǎn)設(shè)置,創(chuàng)建秘鑰:

第1步:創(chuàng)建 SSH Key淀零。

先檢查本機(jī)用戶 home目錄下是否存在 .ssh 目錄挽绩,防止萬一兩人提前認(rèn)識(shí),我們不是瞎忙活了嗎驾中!桌面右擊唉堪,打開Git Bash,并運(yùn)行:
cd ~/.ssh
返回:bash: d:command ont found
這種簡(jiǎn)單的英語不用解釋了吧。沒有肩民,緊接著我們創(chuàng)建秘鑰唠亚。

在用戶主目錄下,一般是C:\Users\Administrator\.ssh持痰,看看有沒有 .ssh 目錄灶搜,如果有,再看看這個(gè)目錄下有沒有 id_rsa 和 id_rsa.pub 這兩個(gè)文件,如果已經(jīng)有了割卖,可直接跳到下一步前酿。如果沒有,打開Shell(Windows下打開Git Bash)鹏溯,創(chuàng)建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"

你需要把郵件地址換成你自己的郵件地址罢维,然后一路三次回車,使用默認(rèn)值即可丙挽,由于這個(gè) Key 也不是用于軍事目的肺孵,所以也無需設(shè)置密碼。

如果一切順利的話取试,可以在用戶主目錄里找到 .ssh 目錄悬槽,里面有** id_rsa 和 id_rsa.pub 兩個(gè)文件,這兩個(gè)就是 SSH Key 的秘鑰對(duì)瞬浓,id_rsa是私鑰初婆,不能泄露出去,id_rsa.pub **是公鑰猿棉,可以放心地告訴任何人磅叛。

第2步:登陸GitHub,打開settings萨赁,SSH and GPG keys 頁面

然后弊琴,點(diǎn)“Add SSH Key”,填上任意Title杖爽,在Key文本框里粘貼 id_rsa.pub文件的全部?jī)?nèi)容:

點(diǎn)“Add Key”敲董,你就應(yīng)該看到已經(jīng)添加的Key:

為什么 GitHub 需要 SSH Key 呢?因?yàn)?GitHub 需要識(shí)別出你推送的提交確實(shí)是你推送的慰安,而不是別人冒充的腋寨,而 Git 支持 SSH 協(xié)議,所以化焕,GitHub 只要知道了你的公鑰萄窜,就可以確認(rèn)只有你自己才能推送。

當(dāng)然撒桨,GitHub 允許你添加多個(gè) Key查刻。假定你有若干電腦,你一會(huì)兒在公司提交凤类,一會(huì)兒在家里提交穗泵,只要把每臺(tái)電腦的 Key 都添加到同一賬戶名下的 GitHub 賬號(hào)里面,就可以在每臺(tái)電腦上往GitHub推送了踱蠢。key 可以隨便生成火欧,但每個(gè)電腦只能用一個(gè)棋电。

最后友情提示,在 GitHub 上免費(fèi)托管的 Git 倉庫苇侵,任何人都可以看到喔(但只有你自己才能改)赶盔。所以,不要把敏感信息放進(jìn)去榆浓。

二于未、添加遠(yuǎn)程庫(空的庫連接git)

現(xiàn)在的情景是,你已經(jīng)在本地創(chuàng)建了一個(gè)Git倉庫后陡鹃,又想在GitHub創(chuàng)建一個(gè)Git倉庫烘浦,并且讓這兩個(gè)倉庫進(jìn)行遠(yuǎn)程同步,這樣萍鲸,GitHub上的倉庫既可以作為備份闷叉,又可以讓其他人通過該倉庫來協(xié)作,真是一舉多得脊阴。

首先握侧,登陸GitHub,然后嘿期,在右上角找到“new repository”按鈕品擎,創(chuàng)建一個(gè)新的倉庫


在 Repository name 填入 learngit,其他保持默認(rèn)設(shè)置备徐,點(diǎn)擊 “Create repository” 按鈕萄传,就成功地創(chuàng)建了一個(gè)新的 Git 倉庫:


目前,在GitHub上的這個(gè)learngit倉庫還是空的蜜猾,GitHub告訴我們秀菱,可以從這個(gè)倉庫克隆出新的倉庫,也可以把一個(gè)已有的本地倉庫與之關(guān)聯(lián)蹭睡,然后答朋,把本地倉庫的內(nèi)容推送到GitHub倉庫。

現(xiàn)在棠笑,我們根據(jù)GitHub的提示,在本地的learngit倉庫下運(yùn)行命令:

$ git remote add origin git@github.com:michaelliao/learngit.git

請(qǐng)千萬注意禽绪,把上面的michaelliao替換成你自己的GitHub賬戶名蓖救,否則,你在本地關(guān)聯(lián)的就是我的遠(yuǎn)程庫印屁,關(guān)聯(lián)沒有問題循捺,但是你以后推送是推不上去的,因?yàn)槟愕腟SH Key公鑰不在我的賬戶列表中雄人。

添加后从橘,遠(yuǎn)程庫的名字就是origin念赶,這是Git默認(rèn)的叫法,也可以改成別的恰力,但是origin這個(gè)名字一看就知道是遠(yuǎn)程庫叉谜。

下一步,就可以把本地庫的所有內(nèi)容推送到遠(yuǎn)程庫上:

$ git push -u origin master
Counting objects: 20, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.
Total 20 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), done.
To github.com:michaelliao/learngit.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

本地庫的內(nèi)容推送到遠(yuǎn)程踩萎,用git push命令停局,由于遠(yuǎn)程庫是空的,我們第一次推送master分支時(shí)香府,加上了-u參數(shù)董栽,Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來企孩,在以后的推送或者拉取時(shí)就可以簡(jiǎn)化命令锭碳。

推送成功后,可以立刻在GitHub頁面中看到遠(yuǎn)程庫的內(nèi)容已經(jīng)和本地一模一樣:

從現(xiàn)在起勿璃,只要本地作了提交擒抛,就可以通過命令:

$ git push origin master

把本地master分支的最新修改推送至GitHub,現(xiàn)在蝗柔,你就擁有了真正的分布式版本庫闻葵!

SSH警告:

我遇到的是在 git clone 地址的時(shí)候,使用的是 git 開頭的地址:
git clone git@github.com:condorheroblog/My-Second.git出現(xiàn)警告的

$ git clone git@github.com:condorheroblog/My-Second.git
Cloning into 'My-Second'...
The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? 

正文:當(dāng)你第一次使用Git的clone或者push命令連接GitHub時(shí)癣丧,會(huì)得到一個(gè)警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

這是因?yàn)镚it使用SSH連接槽畔,而SSH連接在第一次驗(yàn)證GitHub服務(wù)器的Key時(shí),需要你確認(rèn)GitHub的Key的指紋信息是否真的來自GitHub的服務(wù)器胁编,輸入yes回車即可厢钧。

Git會(huì)輸出一個(gè)警告,告訴你已經(jīng)把GitHub的Key添加到本機(jī)的一個(gè)信任列表里了:
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
這個(gè)警告只會(huì)出現(xiàn)一次嬉橙,后面的操作就不會(huì)有任何警告了早直。

如果你實(shí)在擔(dān)心有人冒充GitHub服務(wù)器,輸入yes前可以對(duì)照GitHub的RSA Key的指紋信息是否與SSH連接給出的一致市框。

小結(jié):

要關(guān)聯(lián)一個(gè)遠(yuǎn)程庫霞扬,使用命令
git remote add origin git@server-name:path/repo-name.git;

關(guān)聯(lián)后枫振,使用命令git push -u origin master第一次推送master分支的所有內(nèi)容喻圃;

此后,每次本地提交后粪滤,就可以使用命令git push origin master推送最新修改斧拍;

補(bǔ)充:git remote -v 查看遠(yuǎn)程庫信息
我們可以刪除已有的GitHub遠(yuǎn)程庫:git remote rm origin

三、從遠(yuǎn)程庫克抡刃 (clone是git連接已有庫的方法)

先前都是先有本地庫肆汹,后有遠(yuǎn)程庫的時(shí)候愚墓,如何關(guān)聯(lián)遠(yuǎn)程庫。現(xiàn)在昂勉,假設(shè)我們從零開發(fā)浪册,那么最好的方式是先創(chuàng)建遠(yuǎn)程庫,然后硼啤,從遠(yuǎn)程庫克隆议经。

首先,登陸GitHub谴返,創(chuàng)建一個(gè)新的倉庫煞肾,名字叫downloadgit

我們勾選Initialize this repository with a README,這樣GitHub會(huì)自動(dòng)為我們創(chuàng)建一個(gè)README.md文件嗓袱。創(chuàng)建完畢后籍救,可以看到README.md文件:

現(xiàn)在,遠(yuǎn)程庫已經(jīng)準(zhǔn)備好了渠抹,下一步是用命令git clone克隆一個(gè)本地庫:

$ git clone git@github.com:wangmingshun/downloadgit.git
Cloning into 'downloadgit'...
The authenticity of host 'github.com (192.30.252.122)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.252.122' (RSA) to the list of known hosts.
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (3/3), done.
Checking connectivity... done.

注意把Git庫的地址換成你自己的蝙昙,然后進(jìn)入downloadgit目錄看看,已經(jīng)有README.md文件了梧却。

如果有多個(gè)人協(xié)作開發(fā)奇颠,那么每個(gè)人各自從遠(yuǎn)程克隆一份就可以了。

你也許還注意到放航,GitHub給出的地址不止一個(gè)烈拒,還可以用https://github.com/wangmingshun/downloadgit.git這樣的地址。實(shí)際上广鳍,Git支持多種協(xié)議荆几,默認(rèn)的git://使用ssh,但也可以使用https等其他協(xié)議赊时。

使用https除了速度慢以外吨铸,還有個(gè)最大的麻煩是每次推送都必須輸入口令,但是在某些只開放http端口的公司內(nèi)部就無法使用ssh協(xié)議而只能用https祖秒。

小結(jié)

  • 要克隆一個(gè)倉庫诞吱,首先必須知道倉庫的地址,然后使用git clone命令克隆竭缝。

  • Git支持多種協(xié)議狐胎,包括https,但通過ssh支持的原生git協(xié)議速度最快歌馍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市晕鹊,隨后出現(xiàn)的幾起案子松却,更是在濱河造成了極大的恐慌暴浦,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晓锻,死亡現(xiàn)場(chǎng)離奇詭異歌焦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)砚哆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門独撇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人躁锁,你說我怎么就攤上這事纷铣。” “怎么了战转?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵搜立,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我槐秧,道長(zhǎng)啄踊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任刁标,我火速辦了婚禮颠通,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘膀懈。我一直安慰自己顿锰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布吏砂。 她就那樣靜靜地躺著撵儿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狐血。 梳的紋絲不亂的頭發(fā)上淀歇,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音匈织,去河邊找鬼浪默。 笑死,一個(gè)胖子當(dāng)著我的面吹牛缀匕,可吹牛的內(nèi)容都是我干的纳决。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼乡小,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼阔加!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起满钟,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤胜榔,失蹤者是張志新(化名)和其女友劉穎胳喷,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夭织,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吭露,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尊惰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讲竿。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖弄屡,靈堂內(nèi)的尸體忽然破棺而出题禀,到底是詐尸還是另有隱情,我是刑警寧澤琢岩,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布投剥,位于F島的核電站,受9級(jí)特大地震影響担孔,放射性物質(zhì)發(fā)生泄漏江锨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一糕篇、第九天 我趴在偏房一處隱蔽的房頂上張望啄育。 院中可真熱鬧,春花似錦拌消、人聲如沸挑豌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氓英。三九已至,卻和暖如春鹦筹,著一層夾襖步出監(jiān)牢的瞬間铝阐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工铐拐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留徘键,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓遍蟋,卻偏偏與公主長(zhǎng)得像吹害,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子虚青,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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