從0開始學習GitHub系列之【向GitHub提交代碼】

申金鑫? ? 17101223365

轉(zhuǎn)載自 微信公眾號 stormzhang

【嵌牛導讀】:本教程詳細介紹了Github系列提交

【嵌牛鼻子】: GitHub? ? Git

【嵌牛提問】:如何向GitHub提交代碼

【嵌牛正文】:

之前的這篇文章「從0開始學習 GitHub 系列之「Git速成」」相信大家都已經(jīng)對 Git 的基本操作熟悉了,但是這篇文章只介紹了對本地 Git 倉庫的基本操作,今天我就來介紹下如何跟遠程倉庫一起協(xié)作创千,教你們向 GitHub 上提交你們的第一行代碼虐唠!

1. SSH

你擁有了一個 GitHub 賬號之后缀遍,就可以自由的 clone 或者下載其他項目全度,也可以創(chuàng)建自己的項目说订,但是你沒法提交代碼听诸。仔細想想也知道坐求,肯定不可能隨意就能提交代碼的褐奥,如果隨意可以提交代碼碴开,那么 GitHub 上的項目豈不亂了套了,所以提交代碼之前一定是需要某種授權(quán)的埂伦,而 GitHub 上一般都是基于 SSH 授權(quán)的仔蝌。

那么什么是 SSH 呢泛领?

簡單點說,SSH是一種網(wǎng)絡協(xié)議敛惊,用于計算機之間的加密登錄渊鞋。目前是每一臺 Linux 電腦的標準配置。而大多數(shù) Git 服務器都會選擇使用 SSH 公鑰來進行授權(quán),所以想要在 GitHub 提交代碼的第一步就是要先添加 SSH key 配置锡宋。

2. 生成SSH key

Linux 與 Mac 都是默認安裝了 SSH 儡湾,而 Windows 系統(tǒng)安裝了 Git Bash 應該也是帶了 SSH 的。大家可以在終端(win下在 Git Bash 里)輸入 ssh 如果出現(xiàn)以下提示證明你本機已經(jīng)安裝 SSH执俩, 否則請搜索自行安裝下徐钠。

圖片發(fā)自簡書App

緊接著輸入 ssh-keygen -t rsa ,什么意思呢役首?就是指定 rsa 算法生成密鑰尝丐,接著連續(xù)三個回車鍵(不需要輸入密碼),然后就會生成兩個文件 id_rsa 和 id_rsa.pub 衡奥,而 id_rsa 是密鑰爹袁,id_rsa.pub 就是公鑰。這兩文件默認分別在如下目錄里生成:

Linux/Mac 系統(tǒng) 在 ~/.ssh 下矮固,win系統(tǒng)在 /c/Documents and Settings/username/.ssh 下失息,都是隱藏文件,相信你們有辦法查看的乏屯。

接下來要做的是把 id_rsa.pub 的內(nèi)容添加到 GitHub 上根时,這樣你本地的 id_rsa 密鑰跟 GitHub 上的 id_rsa.pub 公鑰進行配對,授權(quán)成功才可以提交代碼辰晕。

3. GitHub 上添加 SSH key

第一步先在 GitHub 上的設置頁面蛤迎,點擊最左側(cè) SSH and GPG keys :

然后點擊右上角的 New SSH key 按鈕:

圖片發(fā)自簡書App

需要做的只是在 Key 那欄把 id_rsa.pub 公鑰文件里的內(nèi)容復制粘貼進去就可以了(上述示例為了安全粘貼的公鑰是無效的),Title 那欄不需要填寫含友,點擊 Add SSH key 按鈕就ok了替裆。

圖片發(fā)自簡書App

這里提醒下,怎么查看 id_rsa.pub 文件的內(nèi)容窘问?

Linux/Mac 用戶執(zhí)行以下命令:

cd ~/.ssh

cat id_rsa.pub

Windows用戶辆童,設置顯示隱藏文件,可以使用 EditPlus 或者 Sublime 打開復制就行了惠赫。

SSH key 添加成功之后把鉴,輸入 ssh -T git@github.com 進行測試,如果出現(xiàn)以下提示證明添加成功了儿咱。

圖片發(fā)自簡書App

4. Push & Pull

在提交代碼之前我們先要了解兩個命令庭砍,也是上次的文章沒有介紹的,因為這兩個命令需要跟遠程倉庫配合混埠。

Push :直譯過來就是「推」的意思怠缸,什么意思呢?如果你本地代碼有更新了钳宪,那么就需要把本地代碼推到遠程倉庫揭北,這樣本地倉庫跟遠程倉庫就可以保持同步了扳炬。

代碼示例: git push origin master

意思就是把本地代碼推到遠程 master 分支。

Pull:直譯過來就是「拉」的意思搔体,如果別人提交代碼到遠程倉庫恨樟,這個時候你需要把遠程倉庫的最新代碼拉下來,然后保證兩端代碼的同步嫉柴。

代碼示例: git pull origin master

意思就是把遠程最新的代碼更新到本地厌杜。一般我們在 push 之前都會先 pull ,這樣不容易沖突计螺。

5. 提交代碼

添加 SSH key 成功之后,我們就有權(quán)限向 GitHub 上我們自己的項目提交代碼了瞧壮,而提交代碼有兩種方法:

Clone自己的項目

我們以我在 GitHub 上創(chuàng)建的 test 項目為例登馒,執(zhí)行如下命令:

git clone git@github.com:stormzhang/test.git

這樣就把 test 項目 clone 到了本地,你可以把 clone 命令理解為高級點的復制咆槽,這個時候該項目本身就已經(jīng)是一個git 倉庫了陈轿,不需要執(zhí)行 git init 進行初始化,而且甚至都已經(jīng)關聯(lián)好了遠程倉庫秦忿,我們只需要在這個 test 目錄下任意修改或者添加文件麦射,然后進行 commit ,之后就可以執(zhí)行:

git push origin master

進行代碼提交灯谣,這種是最簡單方便的一種方式潜秋。

至于怎么獲取項目的倉庫地址呢?如下圖:

圖片發(fā)自簡書App

關聯(lián)本地已有項目

如果我們本地已經(jīng)有一個完整的 git 倉庫胎许,并且已經(jīng)進行了很多次 commit 峻呛,這個時候第一種方法就不適合了。

假設我們本地有個 test2 的項目辜窑,我們需要的是在 GitHub 上建一個 test 的項目钩述,然后把本地 test2 上的所有代碼 commit 記錄提交到 GitHub 上的 test 項目。

第一步就是在 GitHub 上建一個 test 項目穆碎,這個想必大家都會了牙勘,就不用多講了。

第二步把本地 test2 項目與 GitHub 上的 test 項目進行關聯(lián)所禀,切換到 test2 目錄方面,執(zhí)行如下命令:

git remote add origin git@github.com:stormzhang/test.git

什么意思呢?就是添加一個遠程倉庫北秽,他的地址是 git@github.com:stormzhang/test.git 葡幸,而 origin 是給這個項目的遠程倉庫起的名字,是的贺氓,名字你可以隨便取蔚叨,只不過大家公認的只有一個遠程倉庫時名字就是 origin 床蜘,為什么要給遠程倉庫取名字?因為我們可能一個項目有多個遠程倉庫蔑水?比如 GitHub 一個邢锯,比如公司一個,這樣的話提交到不同的遠程倉庫就需要指定不同的倉庫名字了搀别。

查看我們當前項目有哪些遠程倉庫可以執(zhí)行如下命令:

git remote -v

接下來丹擎,我們本地的倉庫就可以向遠程倉庫進行代碼提交了:

git push origin master

就是默認向 GitHub 上的 test 目錄提交了代碼,而這個代碼是在 master 分支歇父。當然你可以提交到指定的分支蒂培,這個之后的文章再詳細講解。

對了榜苫,友情提醒护戳,在提交代碼之前先要設置下自己的用戶名與郵箱,這些信息會出現(xiàn)在所有的 commit 記錄里垂睬,執(zhí)行以下代碼就可以設置:

git config —global user.name "stormzhang"

git config —global user.email "stormzhang.dev@gmail.com"

6. 總結(jié)

通過本文的介紹媳荒,終于大家可以成功的向 GitHub 提交代碼了,但是相信大家還有很多疑問驹饺,比如關于分支的理解與使用钳枕,比如 git 的其他一些有用的配置,比如怎么向一些開源項目貢獻代碼赏壹,發(fā)起 Pull Request 等鱼炒,之后的系列文章會逐一進行介紹,敬請期待卡儒。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末田柔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子骨望,更是在濱河造成了極大的恐慌硬爆,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件擎鸠,死亡現(xiàn)場離奇詭異缀磕,居然都是意外死亡,警方通過查閱死者的電腦和手機劣光,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門袜蚕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绢涡,你說我怎么就攤上這事牲剃。” “怎么了雄可?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵凿傅,是天一觀的道長缠犀。 經(jīng)常有香客問我,道長聪舒,這世上最難降的妖魔是什么辨液? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮箱残,結(jié)果婚禮上滔迈,老公的妹妹穿的比我還像新娘。我一直安慰自己被辑,他們只是感情好燎悍,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盼理,像睡著了一般间涵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上榜揖,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機與錄音抗蠢,去河邊找鬼举哟。 笑死,一個胖子當著我的面吹牛迅矛,可吹牛的內(nèi)容都是我干的妨猩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼秽褒,長吁一口氣:“原來是場噩夢啊……” “哼壶硅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起销斟,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤庐椒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蚂踊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體约谈,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年犁钟,在試婚紗的時候發(fā)現(xiàn)自己被綠了棱诱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡涝动,死狀恐怖迈勋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情醋粟,我是刑警寧澤靡菇,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布重归,位于F島的核電站,受9級特大地震影響镰官,放射性物質(zhì)發(fā)生泄漏提前。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一泳唠、第九天 我趴在偏房一處隱蔽的房頂上張望狈网。 院中可真熱鬧,春花似錦笨腥、人聲如沸拓哺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽士鸥。三九已至,卻和暖如春谆级,著一層夾襖步出監(jiān)牢的瞬間烤礁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工肥照, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脚仔,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓舆绎,卻偏偏與公主長得像鲤脏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吕朵,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

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