總覽Git和GitHub是任何想要編程的數(shù)據(jù)科學(xué)專業(yè)人員的必備工具在此面向初學(xué)者的綜合指南中,可以了解到Git和GitHub的相關(guān)內(nèi)容和意義介紹。“一個(gè)人能做的事情很少,但我們一起,就可以做很多事情?!?——海倫·凱勒聽(tīng)說(shuō)過(guò)版本控制嗎?當(dāng)我開(kāi)始編程時(shí),我還沒(méi)聽(tīng)說(shuō)過(guò)這個(gè)工具。尤其是在為各種數(shù)據(jù)科學(xué)任務(wù)編寫(xiě)代碼時(shí)頭暈?zāi)垦#菚r(shí)還沒(méi)有意識(shí)到編寫(xiě)高效代碼的重要性以及管理整個(gè)代碼庫(kù)的必要性。直到進(jìn)入這個(gè)行業(yè)時(shí),才明白版本控制的重要性。我學(xué)到的第一件事是清楚了Git和GitHub的意義。雖然一直很了解它們(經(jīng)常使用它們來(lái)克隆Google Research和其他頂級(jí)數(shù)據(jù)科學(xué)組織的開(kāi)源代碼),但從未真正理解它們的真正用途。
版本控制之美對(duì)我來(lái)說(shuō)是一個(gè)啟示。我可以創(chuàng)建一個(gè)遠(yuǎn)程項(xiàng)目,讓我所有的團(tuán)隊(duì)成員同時(shí)獨(dú)立地處理不同的功能,但在一天結(jié)束時(shí)仍然有一個(gè)穩(wěn)定的運(yùn)行代碼,這種方式讓我著迷。瞬間,我發(fā)現(xiàn)了一個(gè)解決在協(xié)作項(xiàng)目時(shí)曾經(jīng)面臨的問(wèn)題的靈丹妙藥。我非常高興與你分享這篇有關(guān)Git和GitHub的文章。我們將介紹這兩種工具的工作方式以及如何使用它們使你的數(shù)據(jù)科學(xué)項(xiàng)目更容易跟蹤。作為數(shù)據(jù)科學(xué)家,你需要對(duì)這些工具有扎實(shí)的了解。你不僅會(huì)面臨有關(guān)此問(wèn)題的面試問(wèn)題,而且你將在數(shù)據(jù)科學(xué)領(lǐng)域中非常依賴Git和GitHub。
如果你正在與一個(gè)項(xiàng)目的其他數(shù)據(jù)科學(xué)家合作(這種情況經(jīng)常發(fā)生),那么有時(shí)你必須更新一段代碼或一個(gè)功能。Git和GitHub將在這里幫助你創(chuàng)建更好的工作流程。無(wú)論你進(jìn)行什么更改,你都可以輕松地將其提供給所有協(xié)作者。如果你輸入有誤,也可以隨時(shí)回到以前的版本目錄。
什么是Git?什么是GitHub?熟悉Git術(shù)語(yǔ)Git入門初始化存儲(chǔ)庫(kù)配置Git了解如何在Git中提交文件查看日志在GitHub上上傳到遠(yuǎn)程存儲(chǔ)庫(kù)將Git遠(yuǎn)程添加到你的存儲(chǔ)庫(kù)使用Push克隆GitHub存儲(chǔ)庫(kù)分支與合并使用Pull為世界貢獻(xiàn)力量尾注讓我們深入了解Git和GitHub的世界!
什么是Git?Git(https://git-scm.com/) 是一種廣泛使用的版本控制系統(tǒng)(Version Control System ,VCS),可讓你跟蹤對(duì)代碼所做的所有修改。這意味著,如果新功能引起了任何錯(cuò)誤,都可以輕松回到以前的版本。但是Git不只是VCS,它還是分布式VCS。這意味著項(xiàng)目的每個(gè)協(xié)作者都將擁有在本地計(jì)算機(jī)上所做更改的歷史記錄,因此人們可以處理項(xiàng)目的不同功能,而不必與托管該項(xiàng)目的遠(yuǎn)程版本服務(wù)器進(jìn)行通信。你可以輕松地將對(duì)項(xiàng)目所做的任何更改與遠(yuǎn)程副本合并,這將大大提高工作效率。由于它是用C語(yǔ)言編寫(xiě)的,所以速度和性能從一開(kāi)始就在Git中根深蒂固。除此之外,在實(shí)際保存對(duì)項(xiàng)目的任何更改之前,Git還提供了大量緩存區(qū)。如果你想了解更多有關(guān)Git的信息,請(qǐng)?jiān)L問(wèn)其官方網(wǎng)站(https://git-scm.com/about/branching-and-merging) ,找到問(wèn)題的答案!
什么是GitHub?GitHub(https://github.com/) 是一個(gè)廣泛使用的版本控制平臺(tái),其核心是Git,它使你可以托管項(xiàng)目的遠(yuǎn)程版本,所有協(xié)作者都可以從中訪問(wèn)它。不僅你自己的團(tuán)隊(duì)成員,而且GitHub的任何成員都可以為你的代碼做出貢獻(xiàn)(當(dāng)然,如果你選擇接受所做的更改)。我們將在本文中詳細(xì)討論這些。GitHub就像一個(gè)社交平臺(tái),你可以在其中找到大量帶有其代碼的開(kāi)源項(xiàng)目。在該平臺(tái)上可以找到所有新興技術(shù)。你可以在驚人的項(xiàng)目上進(jìn)行合作,并就自己的貢獻(xiàn)進(jìn)行討論!這將是你找到的最佳開(kāi)源平臺(tái),也是數(shù)據(jù)科學(xué)家的夢(mèng)想!你可以在GitHub看看我們最好的開(kāi)源數(shù)據(jù)科學(xué)項(xiàng)目,每月都收集在這里:(https://www.a(chǎn)nalyticsvidhya.com/blog/tag/github-repositories)在GitHub上可以做很多事情,讓我們開(kāi)始吧。熟悉Git術(shù)語(yǔ)存儲(chǔ)庫(kù)(Repository)
Repository或Repo是一個(gè)文件夾,其中包含所有項(xiàng)目文件和每個(gè)文件所做的修訂歷史。在項(xiàng)目的整個(gè)生命周期中,將使用項(xiàng)目的兩個(gè)存儲(chǔ)庫(kù):遠(yuǎn)程存儲(chǔ)庫(kù)和本地存儲(chǔ)庫(kù):遠(yuǎn)程存儲(chǔ)庫(kù)包含你的項(xiàng)目,任何人從任何地方都可以訪問(wèn)它。你的遠(yuǎn)程存儲(chǔ)庫(kù)位于GitHub服務(wù)器上,任何人都可以訪問(wèn)它們本地存儲(chǔ)庫(kù)是駐留在本地計(jì)算機(jī)上的遠(yuǎn)程存儲(chǔ)庫(kù)的副本。你所做的所有更改將保存在本地存儲(chǔ)庫(kù)中。除非你將它們推送到遠(yuǎn)程存儲(chǔ)庫(kù),否則你的同伴開(kāi)發(fā)人員將無(wú)法看到它們克?。–loning)git clone < Repo-URL >克隆意味著在本地計(jì)算機(jī)上創(chuàng)建遠(yuǎn)程存儲(chǔ)庫(kù)的副本。現(xiàn)在,你可以在本地計(jì)算機(jī)上對(duì)項(xiàng)目進(jìn)行更改。提交(Commit)git commit -m “< commit message >”提交更改時(shí),將對(duì)文件所做的更改保存在repo中。在本地計(jì)算機(jī)上使用Git時(shí),使用commit命令會(huì)將文件保存在本地存儲(chǔ)庫(kù)中,要在遠(yuǎn)程存儲(chǔ)庫(kù)中進(jìn)行這些更改,你可以使用push命令。推送(Push)git push origin < branch >Push命令允許你將本地存儲(chǔ)庫(kù)上的所有更改傳輸?shù)竭h(yuǎn)程存儲(chǔ)庫(kù)上。傳輸之后,所有其他開(kāi)發(fā)人員都可以訪問(wèn)你所做的更改,并且他們可以更新其本地存儲(chǔ)庫(kù)。拉?。≒ull)git pull < remote-repo >如果push意味著將代碼傳輸?shù)竭h(yuǎn)程存儲(chǔ)庫(kù),則Pull命令允許你將所有更改從遠(yuǎn)程存儲(chǔ)庫(kù)傳輸?shù)奖镜卮鎯?chǔ)庫(kù)。因此,開(kāi)發(fā)人員將其推送到遠(yuǎn)程存儲(chǔ)庫(kù)的任何更改,都可以使用pull命令將其轉(zhuǎn)移到本地存儲(chǔ)庫(kù)中。你還需要了解一些術(shù)語(yǔ),但現(xiàn)在不需要。我們將在本文的后半部分詳細(xì)介紹它們?,F(xiàn)在,讓我們創(chuàng)建我們的第一個(gè)GitHub存儲(chǔ)庫(kù)!Git入門你應(yīng)該做的第一件事是在系統(tǒng)上下載Git。對(duì)已經(jīng)準(zhǔn)備好的人表示敬意!其他人,請(qǐng)轉(zhuǎn)到此處(https://git-scm.com/downloads) 為你的操作系統(tǒng)下載Git。這很簡(jiǎn)單,你可以很快完成。現(xiàn)在,Git程序旨在與Unix風(fēng)格的命令行環(huán)境一起使用。Linux和macOS已經(jīng)在其本地命令行終端中為此提供了一個(gè)接口。因此,我在本文中使用的所有g(shù)it命令都可以在其終端上正常工作。但是,Windows具有完全不同的命令行界面,稱為命令提示符,它不是Unix風(fēng)格的命令行環(huán)境,那么我們?cè)撛趺崔k?不用擔(dān)心,你在安裝Git時(shí)已經(jīng)安裝了Git Bash。Git Bash是Windows的命令行界面,可以模擬Git命令行,因此只要你在Git Bash中實(shí)現(xiàn)Git命令,就可以了。我將交替使用術(shù)語(yǔ)“終端”或“命令行”來(lái)指代macOS和Linux用戶的命令行環(huán)境,以及Windows用戶的Git Bash。我要你做的下一件事是創(chuàng)建一個(gè)項(xiàng)目文件夾,你將在其中保存本地存儲(chǔ)庫(kù),然后按照以下步驟在該項(xiàng)目文件夾中打開(kāi)終端:打開(kāi)終端或Git Bash鍵入命令cd,這意味著更改目錄(或文件夾)導(dǎo)航到項(xiàng)目文件夾所在的位置,但不要打開(kāi)它現(xiàn)在,只需將文件夾拖放到終端內(nèi)即可,這會(huì)將終端導(dǎo)航到你的項(xiàng)目目錄/工作目錄
準(zhǔn)備好開(kāi)始使用Git!初始化存儲(chǔ)庫(kù)存儲(chǔ)庫(kù)或存儲(chǔ)庫(kù)是一個(gè)文件夾,其中包含所有項(xiàng)目文件和對(duì)每個(gè)文件進(jìn)行的修訂。你在上面創(chuàng)建的項(xiàng)目目錄不是存儲(chǔ)庫(kù),一個(gè)存儲(chǔ)庫(kù)需要使用git init命令(https://git-scm.com/docs/git-init) 初始化。
完成此操作后,將在項(xiàng)目/工作存儲(chǔ)庫(kù)中創(chuàng)建一個(gè)隱藏的.git文件夾,這是你本地的Git存儲(chǔ)庫(kù)。如果看不到它,可能是因?yàn)樗请[藏的,你需要更改設(shè)置中的某些屬性以使其可見(jiàn),但是也不用擔(dān)心,即使你沒(méi)有看到它,它仍然存在。Git會(huì)將你對(duì)項(xiàng)目文件所做的所有更改存儲(chǔ)在此文件夾中。
配置Git但是在我們對(duì)存儲(chǔ)庫(kù)進(jìn)行任何更改之前,我們希望Git知道我們是誰(shuí)。我們可以使用git config命令來(lái)做到這一點(diǎn)。使用此設(shè)置,我們可以設(shè)置用戶名和用戶電子郵件地址?,F(xiàn)在,每次我們提交時(shí),Git都會(huì)保存此信息,以便你知道誰(shuí)進(jìn)行了更改。git config — global user.namegit config — global user.email
如果使用–global選項(xiàng),則Git將為系統(tǒng)中的所有存儲(chǔ)庫(kù)保存此信息,如果只希望為該特定存儲(chǔ)庫(kù)保存信息,則可以將其省略。了解如何在Git中提交文件現(xiàn)在,你可以開(kāi)始構(gòu)建項(xiàng)目并將文件添加到項(xiàng)目目錄。我的項(xiàng)目是用不同的編程語(yǔ)言編寫(xiě)“ Hello world”,因此我將為此目的在我的項(xiàng)目目錄中添加一些文件,你也應(yīng)該對(duì)項(xiàng)目目錄執(zhí)行相同的操作,因?yàn)樗F(xiàn)在為空。創(chuàng)建文件并將其添加到項(xiàng)目目錄后,你可以使用git add <file-name>將它們添加到本地Git存儲(chǔ)庫(kù)中。
如果要一次添加多個(gè)文件,請(qǐng)使用git add。
我們完成了嗎?提交更改的命令不是用別的命令嗎?你是絕對(duì)正確的!我們尚未將文件添加到本地存儲(chǔ)庫(kù)。我們剛剛告訴Git,已經(jīng)進(jìn)行了一些更改,我們希望將這些更改保存在下一次提交/保存中,到目前為止,這些“added”文件位于一個(gè)名為“ 暫存區(qū)”的位置。暫存區(qū)是工作目錄和本地repo之間的一個(gè)中間位置,在將所做的任何更改提交到repo之前,都可以在這里進(jìn)行檢查。
1234下一頁(yè)>(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )