遠程倉庫和GitHub — Git & GitHub(2)

說到Git就一定要說GitHub——全球最大的同性交友網(wǎng)站(咳咳Q爸洹)

GitHub是一個提供Git倉庫托管服務的網(wǎng)站芋膘,在這個網(wǎng)站上只要注冊一個GitHub賬號,就可以免費獲得Git遠程倉庫。那么首先允扇,我們還是先看概念愧怜,再看操作~

一呀页、遠程倉庫

Git是分布式版本控制系統(tǒng),同一個Git倉庫拥坛,可以分布到不同的機器上蓬蝶。此后,別的機器可以“克隆”這個原始版本庫猜惋,而且每臺機器的版本庫其實都是一樣的丸氛,并沒有主次之分。而這個原始的版本庫著摔,就是我們所說的遠程倉庫缓窜。

遠程倉庫的運行機制呢,往往是找一臺電腦充當服務器的角色,每天24小時開機禾锤,其他每個人都從這個“服務器”倉庫克隆一份到自己的電腦上私股,并且各自把各自的提交推送到服務器倉庫里,也從服務器倉庫中拉取別人的提交恩掷。

當然倡鲸,我們也可以自己搭建一臺Git服務器。但是現(xiàn)階段黄娘,我們還是先來用現(xiàn)有工具——GitHub來看一看遠程倉庫怎么玩吧峭状。

二、擁有自己的GitHub

1. 注冊GitHub賬號

這一步應該不用教....打開GitHub逼争,自學成才(不認識英文的优床,就右鍵翻譯網(wǎng)頁唄)

2. 根據(jù)提示新建一個倉庫

寫完庫名,其他默認誓焦。至于公開還是私有胆敞,就看你的心情了(同樣,翻譯大法好)罩阵。

下面竿秆,重點來了,開始關聯(lián)本地與遠程的倉庫8灞凇S母帧!

3. 設置免秘鑰登錄遠程倉庫傅是,配置ssh

  1. 任意目錄下打開 git bush 匪燕,依次輸入,然后瘋狂回車就行

    $ cd ~/.ssh
    $ ssh-keygen -t rsa -C "你的郵箱"
    
    • 這里的郵箱就是我們在之前配置git時候的郵箱喧笔,如果忘了帽驯,可以用 git config --list 進行查看。
  1. 然后我們可以看到命令行給我們一類似 C:\Users\XXX\.ssh 的路徑书闸。在這個路徑下尼变,找到這個文件 id_rsa.pub ,用編輯器或者記事本打開浆劲,里面就是我們等下要用到的公鑰嫌术。復制它!

  2. 打開GitHub牌借,依次點擊右上角頭像SettingsSSH and GPG keysNEW SSH key

  • Title:可以隨便填寫度气。不過一臺電腦一般對應一個SSH,為了便于管理膨报,個人建議填寫一個你一看就知道這個SSH對應哪臺電腦的名字磷籍。

  • Key:直接粘貼剛才復制的公鑰(SSH)

    填寫完成后點擊 Add SSH key 提交即可

  1. 轉(zhuǎn)回頭在 git bush 中輸入命令檢測是否連接成功:

    $ ssh -T git@github.com
    

    看到提示讓你寫 yes/no 的适荣,輸入 yes 就可以啦

    接著院领,如果你在 C:\Users\XXX\.ssh 的目錄下弛矛,看到一個 known_hosts 的文件,那就證明連接成功了栅盲。

到此為止汪诉,你電腦中本地倉庫的東西就可以開始往遠程倉庫里面?zhèn)髁朔狭担唧w怎么傳谈秫,往下看!

三鱼鼓、跟GitHub的第一次遠程傳輸

直接開擼步驟:

  1. 找個合適的地方建個文件夾拟烫,同理,路徑中不要有中文迄本!

  2. 然后我們可以隨便建一個文件硕淑,比如index.txt,里面隨便寫點東西嘉赎。

  3. 右鍵點擊 Git Bash Here 置媳,輸入 git init 初始化 git 倉庫。

  4. GitHub打開剛才新建的倉庫公条,按照下圖依次點擊① ②完成復制拇囊。注意在SSH模式下復制(紅色箭頭)

  1. 在bash命令窗口輸入:

    $ git remote add origin 粘貼剛才復制的內(nèi)容(不要Ctrl V,右鍵 → Paste粘貼)
    

    這里面的 origin 就是遠程庫的意思靶橱,是Git默認的叫法寥袭,也可以改成別的。

  2. 把本地庫的內(nèi)容推送到遠程庫上

    $ git push -u origin master
    

    把本地庫的內(nèi)容推送到遠程关霸,用git push命令传黄,實際上是把當前分支master推送到遠程。

    由于遠程庫是空的队寇,我們第一次推送master分支時膘掰,加上了-u參數(shù),Git不但會把本地的master分支內(nèi)容推送的遠程新的master分支佳遣,還會把本地的master分支和遠程的master分支關聯(lián)起來识埋,在以后的推送或者拉取時就可以簡化命令,去掉-u

    $ git push origin master
    
  3. 這時候我們再打開GitHub苍日,會發(fā)現(xiàn)我們文件夾里的文件已經(jīng)上傳到遠程倉庫啦~(沒看到的就刷新一下頁面 )

四惭聂、日常與GitHub的基礎交互

想象這么一個場景,有一天相恃,你開始了一個新的項目辜纲。晚上準備關電腦休息,出于一個程序員的良好品質(zhì),你決定把項目隨手保存到GitHub耕腾。于是你在GitHub上建了一個倉庫见剩,復制了SSH,然后你在項目的根目錄下打開了 git bash 輸入:

$ git remote add origin 粘貼剛才復制的內(nèi)容(不要Ctrl V扫俺,右鍵 → Paste粘貼)

然后苍苞,你開始提交你的項目代碼

$ git add -A
$ git commit -m "lalala"
$ git push origin master

就這樣,你每天都在寫代碼狼纬,然后重復著 git add 羹呵、 git commitgit push 三連.....

很快疗琉,你的項目寫完了冈欢,你分享給你的朋友們看,他們在你的GitHub上復制了你的SSH盈简,然后建了個文件夾凑耻,打開了 git bash ,輸入:

$ git clone 粘貼剛才復制的內(nèi)容(不要Ctrl V柠贤,右鍵 → Paste粘貼)

這樣香浩,他們就拿到了的源碼。于是臼勉,又有一天邻吭,你的一個朋友發(fā)現(xiàn)你有個地方有個bug,但是你抽不開手坚俗,想讓他幫你改改镜盯。很快,他改好了猖败,但是直接把代碼發(fā)給你多l(xiāng)ow啊速缆,于是.....

于是就涉及到多人協(xié)作了,關于如何在GitHub上進行多人協(xié)作恩闻,我們在后面了解過分支艺糜、標簽的概念后,繼續(xù)了解~~

五幢尚、擴充一:Git支持的協(xié)議

大家會發(fā)現(xiàn)破停,在GitHub除了 SSH 以外,還給出了 HTTPS 的傳輸協(xié)議尉剩,但是我們經(jīng)常使用的是 SSH 地址真慢,這是為什么呢?

實際上理茎,Git支持多種協(xié)議黑界,默認的 git:// 使用ssh管嬉,但也可以使用 https 等其他協(xié)議。

  • 通過 SSH 支持的原生git協(xié)議速度最快

  • 使用 https 除了速度慢以外朗鸠,還有個最大的麻煩是每次推送都必須輸入口令

  • 但是在某些只開放http端口的公司內(nèi)部蚯撩,就無法使用ssh協(xié)議而只能用https

六烛占、擴充二:關于SSH警告

當你第一次使用Git的clone或者push命令連接GitHub時胎挎,會得到一個警告:

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)?

這是因為Git使用SSH連接,而SSH連接在第一次驗證GitHub服務器的Key時忆家,需要你確認GitHub的Key的指紋信息是否真的來自GitHub的服務器犹菇,輸入yes回車即可。

Git會輸出一個警告弦赖,告訴你已經(jīng)把GitHub的Key添加到本機的一個信任列表里了:

Warning: Permanently added 'github.com' (RSA) to the list of known hosts.

這個警告只會出現(xiàn)一次项栏,后面的操作就不會有任何警告了浦辨。

如果你實在擔心有人冒充GitHub服務器蹬竖,輸入yes可以對照GitHub的RSA Key的指紋信息是否與SSH連接給出的一致。

七流酬、擴充三:只提交某個文件的內(nèi)容

$ git status ./           查看這個文件夾下的文件狀態(tài)币厕,會列出有哪些沒有加入追蹤,哪些沒有commit
$ git add ./*             把這個文件下的所有應該加入追蹤的芽腾,加入到暫存區(qū)
$ git commit -m "日志描述" ./           把這個文件夾下可以commit的旦装,都commit到本地庫
$ git push                push到遠程庫

參考資料:
廖雪峰-Git
git單獨只提交某個文件夾的簡便操作方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市摊滔,隨后出現(xiàn)的幾起案子阴绢,更是在濱河造成了極大的恐慌,老刑警劉巖艰躺,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呻袭,死亡現(xiàn)場離奇詭異,居然都是意外死亡腺兴,警方通過查閱死者的電腦和手機左电,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來页响,“玉大人篓足,你說我怎么就攤上這事∪虿希” “怎么了栈拖?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長没陡。 經(jīng)常有香客問我涩哟,道長烟瞧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任染簇,我火速辦了婚禮参滴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锻弓。我一直安慰自己砾赔,他們只是感情好,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布青灼。 她就那樣靜靜地躺著暴心,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杂拨。 梳的紋絲不亂的頭發(fā)上专普,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機與錄音弹沽,去河邊找鬼檀夹。 笑死,一個胖子當著我的面吹牛策橘,可吹牛的內(nèi)容都是我干的炸渡。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼丽已,長吁一口氣:“原來是場噩夢啊……” “哼蚌堵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起沛婴,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤吼畏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嘁灯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泻蚊,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年旁仿,在試婚紗的時候發(fā)現(xiàn)自己被綠了藕夫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡枯冈,死狀恐怖毅贮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尘奏,我是刑警寧澤滩褥,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站炫加,受9級特大地震影響瑰煎,放射性物質(zhì)發(fā)生泄漏铺然。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一酒甸、第九天 我趴在偏房一處隱蔽的房頂上張望魄健。 院中可真熱鬧,春花似錦插勤、人聲如沸沽瘦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽析恋。三九已至,卻和暖如春盛卡,著一層夾襖步出監(jiān)牢的瞬間助隧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工滑沧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留并村,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓嚎货,卻偏偏與公主長得像橘霎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子殖属,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

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

  • 遠程倉庫 到目前為止,我們已經(jīng)掌握了如何在Git倉庫里對一個文件進行時光穿梭瓦盛,你再也不用擔心文件備份或者丟失的問題...
    歸云丶閱讀 1,957評論 0 5
  • 遠程倉庫洗显。 在了解之前,先注冊github賬號原环,由于你的本地Git倉庫和github倉庫之間的傳輸是通過SSH加密...
    在你左右2018閱讀 338評論 0 0
  • 1.GitHub 有什么用 學習優(yōu)秀的開源項目開源社區(qū)一直有一句流行的話叫「不要重復發(fā)明輪子」挠唆,某種意義上正是因為...
    Clemente閱讀 1,424評論 1 14
  • 該篇文章為學習廖雪峰git教程的總結(jié),具體可移步廖雪峰老師git教程網(wǎng)站 Git介紹 Git是分布式版本控制系統(tǒng)嘱吗。...
    Pig_deng飼養(yǎng)員閱讀 960評論 0 1
  • Git 安裝和使用教程 Git介紹 分布式:Git版本控制系統(tǒng)是一個分布式的系統(tǒng)玄组,是用來保存工程源代碼歷史狀態(tài)的命...
    無名_ff98閱讀 1,623評論 0 3