For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
以我的經(jīng)驗(yàn)來(lái)看,剛接觸Git和GitHub時(shí),最困擾的一件事情就是嘗試解決下面的問(wèn)題:在Git和GitHub上,我能做什么?
Git教程往往不會(huì)解決這個(gè)問(wèn)題,因?yàn)樗衅鶃?lái)教你Git命令和概念,并且不認(rèn)為你會(huì)使用GitHub。GitHub幫助教程一定程度上彌補(bǔ)了這一缺陷,但是它每篇文章的關(guān)注點(diǎn)都較為狹隘,而且沒(méi)有提供關(guān)于"Git vs GitHub"問(wèn)題的概念性概述。
如果你是習(xí)慣于先理解概念,再著手代碼的學(xué)習(xí)者,而且你也是Git和GitHub的初學(xué)者,我建議你先理解清楚什么是fork。為什么呢 ?
Fork是在GitHub起步最普遍的方式。
Fork只需要很少的Git命令,但是起得作用卻非常大。
Fork提供了對(duì)Git和GitHub最基礎(chǔ)的了解,有益于你之后的工作。
本篇指南使用兩張簡(jiǎn)單的圖表,來(lái)教會(huì)你fork的兩種主要工作流程。我并不打算涉及任何代碼,但是在結(jié)論中,我會(huì)把你需要使用的代碼的鏈接給你。
fork并且更新一個(gè)倉(cāng)庫(kù)
現(xiàn)在有這樣一種情形:有一個(gè)叫做Joe的程序猿寫(xiě)了一個(gè)游戲程序,而你可能要去改進(jìn)它。并且Joe將他的代碼放在了GitHub倉(cāng)庫(kù)上。下面是你要做的事情:
fork并且更新GitHub倉(cāng)庫(kù)的圖表演示
Fork他的倉(cāng)庫(kù):這是GitHub操作,這個(gè)操作會(huì)復(fù)制Joe的倉(cāng)庫(kù)(包括文件,提交歷史,issues,和其余一些東西)。復(fù)制后的倉(cāng)庫(kù)在你自己的GitHub帳號(hào)下。目前,你本地計(jì)算機(jī)對(duì)這個(gè)倉(cāng)庫(kù)沒(méi)有任何操作。
Clone你的倉(cāng)庫(kù):這是Git操作。使用該操作讓你發(fā)送"請(qǐng)給我發(fā)一份我倉(cāng)庫(kù)的復(fù)制文件"的命令給GitHub。現(xiàn)在這個(gè)倉(cāng)庫(kù)就會(huì)存儲(chǔ)在你本地計(jì)算機(jī)上。
更新某些文件:現(xiàn)在,你可以在任何程序或者環(huán)境下更新倉(cāng)庫(kù)里的文件。
提交你的更改:這是Git操作。使用該操作讓你發(fā)送"記錄我的更改"的命令至GitHub。此操作只在你的本地計(jì)算機(jī)上完成。
將你的更改push到你的GitHub倉(cāng)庫(kù):這是Git操作。使用該操作讓你發(fā)送"這是我的修改"的信息給GitHub。Push操作不會(huì)自動(dòng)完成,所以直到你做了push操作,GitHub才知道你的提交。
給Joe發(fā)送一個(gè)pull request:如果你認(rèn)為Joe會(huì)接受你的修改,你就可以給他發(fā)送一個(gè)pull request。這是GitHub操作,使用此操作可以幫助你和Joe交流你的修改,并且詢問(wèn)Joe是否愿意接受你的"pull request",當(dāng)然,接不接受完全取決于他自己。
如果Joe接受了你的pull request,他將把那些修改拉到自己的倉(cāng)庫(kù)。勝利!
同步一個(gè)fork
Joe和其余貢獻(xiàn)者已經(jīng)對(duì)這個(gè)項(xiàng)目做了一些修改,而你將在他們的修改的基礎(chǔ)上,還要再做一些修改。在你開(kāi)始之前,你最好"同步你的fork",以確保在最新的復(fù)制版本里工作。下面是你要做的:
同步GitHub fork的圖表示意圖
從Joe的倉(cāng)庫(kù)中取出那些變化的文件:這是Git操作,使用該命令讓你可以從Joe的倉(cāng)庫(kù)獲取最新的文件。
將這些修改合并到你自己的倉(cāng)庫(kù):這是Git操作,使用該命令使得那些修改更新到你的本地計(jì)算機(jī)(那些修改暫時(shí)存放在一個(gè)"分支"中)。記?。翰襟E1和2經(jīng)常結(jié)合為一個(gè)命令使用,合并后的Git命令叫做"pull"。
將那些修改更新推送到你的GitHub倉(cāng)庫(kù)(可選):記住,你本地計(jì)算機(jī)不會(huì)自動(dòng)更新你的GitHub倉(cāng)庫(kù)。所以,唯一更新GitHub倉(cāng)庫(kù)的辦法就是將那些修改推送上去。你可以在步驟2完成后立即執(zhí)行push,也可以等到你做了自己的一些修改,并已經(jīng)本地提交后再執(zhí)行推送操作。
比較一下fork和同步工作流程的區(qū)別:當(dāng)你最初fork一個(gè)倉(cāng)庫(kù)的時(shí)候,信息的流向是從Joe的倉(cāng)庫(kù)到你的倉(cāng)庫(kù),然后再到你本地計(jì)算機(jī)。但是最初的過(guò)程之后,信息的流向是從Joe的倉(cāng)庫(kù)到你的本地計(jì)算機(jī),之后再到你的倉(cāng)庫(kù)。
結(jié)論
我希望這是一篇關(guān)于GitHub和Git 的 fork有用概述?,F(xiàn)在,你已經(jīng)理解了那些概念,你將會(huì)更容易地在實(shí)際中執(zhí)行你的代碼。GitHub關(guān)于fork和同步的文章將會(huì)給你大部分你需要的代碼。
如果你是Git的初學(xué)者,而且你很喜歡這種學(xué)習(xí)方式,那么我極力推薦書(shū)籍Pro Git的前兩個(gè)章節(jié),網(wǎng)上是可以免費(fèi)查閱的。
如果你喜歡視頻學(xué)習(xí),我創(chuàng)建了一個(gè)11部分的視頻系列(總共36分鐘),來(lái)向初學(xué)者介紹Git和GitHub。
GitHub 使用教程圖文詳解 #/Linux/2014-09/106230.htm
如何在 GitHub 建立組織 #/Linux/2013-08/88197.htm
GitHub Linux下使用方法 #/Linux/2013-06/86417.htm
Windows下Eclipse搭建GitHub開(kāi)發(fā)環(huán)境圖文教程 #/Linux/2013-06/85372.htm
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!