0
本文作者: AI研習(xí)社-譯站 | 2018-08-02 15:17 |
雷鋒網(wǎng)按:這里是,油管 Artificial Intelligence Education 專欄,原作者 Siraj Raval 授權(quán)雷鋒字幕組編譯。
原標(biāo)題:How to Use GitHub
翻譯 | 于志鵬 朱海振 校對| 余杭 整理 | MY
GitHub,全世界開發(fā)者的安全空間,在這里,你可以分享你的代碼為大家所用,也可以和全世界的開發(fā)者一起共建完善你的代碼。在這里,你可以學(xué)習(xí)借鑒前輩的經(jīng)驗快速提升技能,也可以更好地展示自己的學(xué)習(xí)成果為未來發(fā)展撰寫自己的名片。本期視頻就由網(wǎng)紅小哥 Siraj 為大家講解 Git 協(xié)議是如何工作的,并教你建立自己的代碼倉庫以及用社交媒體提升你的 GitHub 代碼。
1. 什么是 Git 協(xié)議
你可能會發(fā)現(xiàn) GitHub 有個很鮮明的特色,它允許開發(fā)者通過一個共享界面實現(xiàn)合作,在這里你可以以你認(rèn)為好的方式修改他人的開放代碼,也可以邀請他人來協(xié)助你完善你的。這種合作就像特斯拉公司要發(fā)布一輛新車型,他們會用一年時間來請負(fù)責(zé)每個部分的小組進行設(shè)計、協(xié)調(diào)并與其它小組設(shè)計的新特征保持同步,從而實現(xiàn)設(shè)計的最優(yōu)化。這是一個充分發(fā)揮民主的過程。
那你可能會疑惑,是什么驅(qū)使世界各地的開發(fā)者互相協(xié)作,并且一旦發(fā)生問題,是否有可能修改或還原呢?
答案很簡單,因為使用了 Git 協(xié)議存儲代碼庫。
十幾年前,大名鼎鼎的程序員 Linus Torvalds 正忙于構(gòu)建一個操作系統(tǒng),并且與其它開發(fā)者一起不斷修改代碼,因此他需要一個方式去追蹤代碼是如何隨著時間更改的,這樣一旦發(fā)生問題可以很輕易的回到之前的版本。一般來說我們會不斷地保存副本并重命名,我想你寫論文也碰見過這種情況:一稿、二稿···絕不修改版本···再次修改版本···這簡直是噩夢,所以 Linus 寫了 Git 協(xié)議,用來提供項目最新的注釋合集和按時間排序的代碼更改歷史。直到現(xiàn)在,Git 協(xié)議幾乎是每一個現(xiàn)代開發(fā)工作流的核心。
2. 如何理解 Git 協(xié)議中的指令
Git 協(xié)議中有大量指令,當(dāng)你第一次試著去理解的時候它的結(jié)構(gòu)可能令人費解。不過我們還是以特斯拉公司為例。
我們需要研發(fā)新車型,事實上在給定的任意時間我們存在四個版本的設(shè)計:(1)實時版本,也就是消費者熟悉的在售現(xiàn)行版本;(2)計劃中明年版本,只要所有小組同意,這個版本將成為新的實時版本,它代表著遠(yuǎn)程數(shù)據(jù)庫,儲存了我們最新的優(yōu)化后的設(shè)計版本;(3)最新版本充分考慮了其他小組的建議,但還未向其他小組展示并獲得許可,它代表本地庫;(4)開發(fā)中版本,它需要進一步的內(nèi)測和審核,這是一個緩存區(qū)。
每個階段都對應(yīng)著不同層次的貢獻(xiàn),對代碼來說也是一樣,我們的代碼在落地前必須經(jīng)歷四個階段,每個階段都進一步降低了與其它小組相沖突的風(fēng)險。
Git 協(xié)議中還有一個聲明,表示我們完成了一個完整的設(shè)計并且我們對它十分滿意,Git 協(xié)議中的提交意味著即使還需要測試和審核,我們?nèi)匀粚ψ约旱脑O(shè)計充滿信息,并且已經(jīng)對它進行了所有標(biāo)準(zhǔn)化的測試。
3. Git 協(xié)議如何運作
一旦我們準(zhǔn)備好將我們的設(shè)計展示給其他人,就可以將我們的設(shè)計從本地庫復(fù)制到遠(yuǎn)程存儲庫中,在 Git 協(xié)議中我們可以使用 push 指令,過程存儲庫保存在云端,本地庫則保存在我們的電腦上。一旦所有人都表示滿意,我們就可以將它部署到我們的網(wǎng)站或手機應(yīng)用上。
在生產(chǎn)中,這實際上不是一個 Git 指令而是代表著從實際版本到生產(chǎn)的過程。
事實上我們可能為每個新版本都建立了存儲庫,但因為他們都很多共同點,我們可以只為每個版本建立分支,分支可以讓我們基于相同的代碼庫保持多個版本。如果使用后發(fā)現(xiàn)在現(xiàn)有版本中加入某個特征會更好,我們就可以用 merge 指令來整合兩個分支。
加入有人推送了一個新的特征或代碼到遠(yuǎn)程存儲庫中,我們可以通過 Git 協(xié)議中的 pull 指令提取新特征到我們的本地庫。如果這個新特征與我們的存儲庫沖突,我們可以讓代碼恢復(fù)到改變前的狀態(tài),或者調(diào)整推送一個更新的版本到遠(yuǎn)程存儲庫。
Git 協(xié)議可以幫我們追蹤并快速定位沖突,使得優(yōu)化和修復(fù)都更加簡單。
4. 如何使用 Github
我們已經(jīng)知道 Github 使用了 Git 協(xié)議,我們繼續(xù)建立自己的存儲庫,在完成注冊后然后將它存在 Github 上,這里相當(dāng)于一個開發(fā)者的社交網(wǎng)絡(luò)平臺,我們可以下載最新的 Git 協(xié)議。
我們通過在 Github。com 上使用 git config 指令確定自己的用戶名和郵箱,然后就可以通過在命令行使用 git init 指令建立自己的本地 Git 庫。可以新建一個代碼文件夾,并且通過直接把更改添加到緩存區(qū)來將其添加到 Git。
每一個開發(fā)者只負(fù)責(zé)自己的分支,我們可以在本地匹配他們,然后提交方案,不同的提交來自于不同的分支,所有分支逐漸導(dǎo)向 master 節(jié)點,這也是為什么 Git 會呈現(xiàn)樹形結(jié)構(gòu)。
GitHub 是一個社交網(wǎng)絡(luò)平臺,你可以關(guān)注并追蹤其他開發(fā)者的最新代碼,關(guān)注你的開發(fā)者越多,他們越有可能提升你的開源項目。而良好的文件記錄極有助于讓其他開發(fā)者關(guān)注你的代碼。所以你還在等什么?快加入 GitHub 吧!
視頻原址:https://www.youtube.com/watch?v=Loav1kbA640
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。