編者按:作為數(shù)據(jù)科學(xué)家,Git和GitHub想必是大家再熟悉不過的東西。其中,Git是現(xiàn)在最好用的版本控制軟件,GitHub是基于Git的代碼托管庫。面對(duì)這樣使用廣泛的工具,學(xué)習(xí)自然是個(gè)無止境的過程,但新手該怎么從一開始就養(yǎng)成好習(xí)慣呢?對(duì)于這個(gè)問題,Microverse的創(chuàng)始人Ariel Camus有話說。
本文不會(huì)涉及如何創(chuàng)建GitHub配置文件和如何在本地推送Git這類具體問題,相反地,首先我們會(huì)解釋為什么用好Git和GitHub非常重要,然后再介紹三個(gè)簡單規(guī)則,只要養(yǎng)成習(xí)慣,你就能從中受益無窮。
為什么Git和GitHub如此重要?
如果你剛開始學(xué)計(jì)算機(jī),那么之后你的目標(biāo)可能就是積累知識(shí),畢業(yè)后獲得一份對(duì)口工作,比如軟件工程師、數(shù)據(jù)科學(xué)家等。在這種情況下。答案很簡單——
學(xué)習(xí)怎么用Git和GitHub很重要,因?yàn)槟愎ぷ骱髸?huì)頻繁用到它們的概率幾乎是99%,它們已經(jīng)成為所有科技公司的標(biāo)配。所以,如果你想從初級(jí)開發(fā)人員脫穎而出,你最好在Git和GitHub上多用點(diǎn)心。
高級(jí)開發(fā)人員的“高級(jí)”之處不是他們對(duì)編程語言的語法有什么更高深的理解,而是他們?cè)趯?shí)際復(fù)雜大型項(xiàng)目上有更多經(jīng)驗(yàn)。
而如果只是個(gè)剛?cè)胄械?a target="_blank">新人,你是很難獲得這種體驗(yàn)的。經(jīng)驗(yàn)來源于生活,來源于實(shí)踐。Git和GitHub正是你從實(shí)際項(xiàng)目中積累實(shí)際經(jīng)驗(yàn)的一種好途徑。
話說到這里,可能你已經(jīng)認(rèn)同這些工具對(duì)找工作的裨益,那么剩下的問題就是:為什么Git和GitHub對(duì)公司也那么重要?
簡而言之,Git這個(gè)工具允許團(tuán)隊(duì)成員以異步的方式高效、有效地為同一個(gè)項(xiàng)目提交開發(fā)代碼。人與人之間能更好地協(xié)作,團(tuán)隊(duì)能解決的問題自然也更大更復(fù)雜。這是一個(gè)分布式版本控制系統(tǒng),它提供還原更改、創(chuàng)建代碼分支、解決代碼合并沖突等機(jī)制——這些都是非常有用的功能,可以幫助解決團(tuán)隊(duì)每天都會(huì)遇到的常見問題。
而對(duì)于這些問題,Git是當(dāng)前最好的解決方案。
另一方面,GitHub是通過Git進(jìn)行版本控制的軟件源代碼托管服務(wù),它為各類特定問題、常見問題提供解決方案,例如Code Review、pull reqeust、問題管理/bug跟蹤等。
說明:即便Git是大多數(shù)公司的首選版本控制工具,GitHub還是有一些強(qiáng)大的競(jìng)品的,如GitLab和Bitbucket。事實(shí)上,之前GitHub被微軟收購時(shí),已經(jīng)有少數(shù)開發(fā)者把自己的代碼庫遷移了出去,但現(xiàn)在GitHub還是主流。如果你已經(jīng)熟練掌握怎么用GitHub,你會(huì)發(fā)現(xiàn)自己用GitLab和Bitbucket也不會(huì)覺得手生。
Git和GitHub實(shí)踐建議:三個(gè)簡單規(guī)則
因?yàn)槲覀€(gè)人是Microverse的創(chuàng)始人,所以這里簡單提一下我的教學(xué)經(jīng)驗(yàn)。Microverse是一個(gè)面向軟件工程師的遠(yuǎn)程培訓(xùn)學(xué)校,在給學(xué)生上課時(shí),我們不僅會(huì)教他們?nèi)绾螌懘a,也會(huì)提供大量指導(dǎo)和規(guī)劃,以便他們把課上學(xué)到的東西用于實(shí)踐。
我們要求學(xué)生做的第一件事是遵循以下三個(gè)簡單規(guī)則,成為Git和GitHub的專業(yè)使用者。但在具體展開前,請(qǐng)先問自己以下兩個(gè)問題:
你熟悉Git和GitHub嗎?如果不,HubSpot上有一個(gè)值得閱讀的教程。
您知道GitHub Flow是什么嗎?如果不,先去GitHub閱讀官方介紹。
接下來就是這一節(jié)的重點(diǎn):三個(gè)規(guī)則。
規(guī)則一:為每個(gè)新項(xiàng)目創(chuàng)建一個(gè)Git存儲(chǔ)庫。
規(guī)則二:為每個(gè)新功能創(chuàng)建一個(gè)新分支。
規(guī)則三:用pull reqeust把代碼合并到Master分支。
規(guī)則一:為每個(gè)新項(xiàng)目創(chuàng)建一個(gè)Git存儲(chǔ)庫
第一條規(guī)則很簡單,但養(yǎng)成這個(gè)習(xí)慣不容易。每當(dāng)你開始做一個(gè)新項(xiàng)目——投資組合、學(xué)習(xí)項(xiàng)目、競(jìng)賽解決方案等——你就應(yīng)該新開一個(gè)Git存儲(chǔ)庫,然后把它上傳GitHub。
一個(gè)專用的repo是為你編寫的每一行代碼使用版本控制的第一步,而版本控制是各大公司處理實(shí)際項(xiàng)目的工作方式。因此今早學(xué)會(huì)這一點(diǎn)并養(yǎng)成習(xí)慣,會(huì)對(duì)你日后發(fā)展帶去幫助。
規(guī)則二:為每個(gè)新功能創(chuàng)建一個(gè)新分支
假設(shè)你正在開發(fā)一個(gè)投資組合項(xiàng)目(比如股票債券投資組合),而且想構(gòu)建一個(gè)“聯(lián)系我們”的組件,那么你應(yīng)該為這個(gè)新功能構(gòu)建一個(gè)專用分支,并給他一個(gè)直觀有意義的名字(比如contact-me-section),然后把所有和這個(gè)組件有關(guān)的代碼都存到里面去。
如果你不知道什么叫分支,可以去看之前推薦閱讀的GitHub Flow。
通過分支,你就能和其他團(tuán)隊(duì)成員并行處理不同功能,同時(shí)保持每個(gè)功能的特定代碼和其他功能的隔離。這種方法有助于篩查不穩(wěn)定代碼,確保合并代碼的高效。
即便團(tuán)隊(duì)里就你一個(gè)人,養(yǎng)成這種習(xí)慣也有助于你理順?biāo)悸?,同時(shí)在日后的工作中建立起優(yōu)勢(shì)。
規(guī)則三:用pull reqeust把代碼合并到Master分支
默認(rèn)情況下,在數(shù)據(jù)庫進(jìn)行最初的提交后,Git會(huì)創(chuàng)建一個(gè)名為master的分支。但是,你絕對(duì)不應(yīng)該直接把更改內(nèi)容添加進(jìn)去。相反地,你應(yīng)該用上上面提到的功能分支,然后打開一個(gè)新的pull reqeust,把功能分支代碼和主分支代碼合并。
在實(shí)際工作中,有些人可能會(huì)在你不知情的情況下查看你的pull reqeust,并進(jìn)行代碼審查。同時(shí),GitHub自己也會(huì)對(duì)你的代碼做自動(dòng)化測(cè)試,然后向你提交bug提醒。也就是說,如果你的代碼和主分支代碼之間存在沖突,它會(huì)報(bào)錯(cuò),而且這個(gè)錯(cuò)不一定是你造成的,團(tuán)隊(duì)中其他開發(fā)人員提交的更改也會(huì)通知你。
只有在確保自己的代碼已經(jīng)經(jīng)過審核、測(cè)試和批準(zhǔn)的情況下,你才能合并pull reqeust,或者負(fù)責(zé)審核的人會(huì)直接代勞。
如果這個(gè)項(xiàng)目只有你一個(gè)人,那你也要習(xí)慣于這么做,因?yàn)檫@幾乎是每個(gè)開源項(xiàng)目的基本工作流程。如果你參與過其他人的項(xiàng)目,那么踐行這三個(gè)規(guī)則也有助于你明確自己的貢獻(xiàn)。
也許看完上述內(nèi)容后,你還有些困惑,但是現(xiàn)在你就可以開始慢慢牢記并養(yǎng)成這三個(gè)習(xí)慣。不要想著自己該“如何”這么做,如果你能始終專注于“做什么”和“為什么”,你會(huì)發(fā)現(xiàn)整個(gè)過程會(huì)變得無比簡單和自然。
-
Git
+關(guān)注
關(guān)注
0文章
196瀏覽量
15720 -
GitHub
+關(guān)注
關(guān)注
3文章
465瀏覽量
16359
原文標(biāo)題:三個(gè)簡單規(guī)則,助你養(yǎng)成Git和GitHub好習(xí)慣
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論