99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀敲黑板!你和GitHub高手就差這三條規(guī)則······
敲黑板!你和GitHub高手就差這三條規(guī)則······
2018-08-18
收藏

敲黑板!你和GitHub高手就差這三條規(guī)則······

本文不會介紹如何創(chuàng)建 GitHub 簡歷或如何使用終端提交 Git。我將解釋每天使用 Git 和 GitHub 的重要性,尤其對于正在學習寫代碼的人。我還將分享并討論三個簡單的規(guī)則,你可以通過遵循這些規(guī)則,變成一個優(yōu)秀的 Git 和 GitHub 使用者。

為什么 Git 和 GitHub 如此重要?

如果正在學習編程,而且你的終極目標是獲得一份軟件開發(fā)的工作。在這種情況下,答案很簡單:

學習 Git 和 GitHub 非常重要,因為 99% 的公司都會使用 Git 和 GiHub。所以,學習使用 Git 和 GitHub 可以讓你更容易被雇傭,并且能將你和初級開發(fā)者區(qū)別開來。

高級開發(fā)者之所以成為高級開發(fā)者,并不是因為他們更了解特定語言的語法,而是他們有和真實用戶一起處理大型復雜項目和完成業(yè)務目標的經(jīng)驗。

當你仍在學習寫代碼階段時,你很難獲得這種經(jīng)驗。然而,獲得現(xiàn)實世界經(jīng)驗的一個簡單方法就是利用現(xiàn)實世界項目使用的工具和方法。Git 和 GitHub 就是一個例子。

你還可以做的事情:遠程結對編程、為開源做貢獻、為你的簡歷構建專業(yè)設計網(wǎng)站。

即使你同意「掌握 Git 和 GitHub 有助于找工作」,你可能仍然會想:

「為什么 Git 和 Github 對公司如此重要?」

簡而言之,Git 允許團隊以異步方式高效地為同一個項目貢獻代碼。這使得團隊能夠更好地協(xié)作,從而解決更大更復雜的問題。

Git 是一個分布式版本控制系統(tǒng),它還提供取消更改、創(chuàng)建代碼分支、解決合并沖突等機制。這些都是非常有用的特性,可以解決每個軟件團隊每天都面臨的特定問題和常見問題。Git 是當今的主流解決方案。

另一方面,GitHub 是 Git 之上的附加層,它為其他特定和常見問題提供解決方案,比如代碼審查、pull request、問題管理/bug 跟蹤等等。

注:盡管 Git 是大多數(shù)公司的首選版本控制解決方案,但 GitHub 仍然有一些強大的競爭對手,比如 GitLab 和 Bitbucket。但是,如果你知道如何使用 GitHub,那么你就能駕輕就熟地使用 GitLab 或 Bitbucket。

現(xiàn)在你已經(jīng)了解了掌握 Git 和 Github 的重要性,接下來我們來看三個簡單規(guī)則,它們可以讓你在學習編寫代碼階段,就輕松成為專業(yè)的 Git 和 Github 用戶。

如何利用 3 條簡單規(guī)則掌握 Git 和 Github?


我是 Microverse 的創(chuàng)始人,Microverse 是一所面向遠程軟件開發(fā)人員的學校,在你找到工作前完全免費使用。我們在 22 周計劃中,不僅教學生如何編程,同時也會給他們大量的指導和構思,讓他們在計劃中獲得實際經(jīng)驗。

為了成為專業(yè)的 Git 和 Github 用戶,我們要求學生遵循以下三個規(guī)則。培訓結束后,我們的學生應該能自然而然運用 Git、GitHub、branch、合并請求和代碼評審。

在討論這三條簡單規(guī)則前,請先完成以下任務:


  1. 如果你對 Git 和 Github 還不熟悉,請先從 HubSpot 上完成這個很棒的教程:https://product.hubspot.com/blog/git-github;

  2. 如果你還不了解 GitHub 流,你應該先學習它,因為我們后邊會用到:https://guides.github.com/tion/flow/。

無需多言,三條能令你在學習編程階段就能熟練掌握 Git 和 Github 的簡單規(guī)則如下:


  • 規(guī)則 #1:為每個新項目創(chuàng)建一個 Git 倉庫

  • 規(guī)則 #2:為每個新特性創(chuàng)建一個新分支

  • 規(guī)則 #3:使用 Pull Request 將代碼合并到 Master 分支

即使你的項目非常簡單或者你只是單獨工作,但只要在每次編程時遵循這三條規(guī)則,你很快就可以成為 Git 和 GitHub 的使用高手。

我們會簡單分析每條規(guī)則,以便你理解該如何做以及為什么這些規(guī)則很重要。

規(guī)則 #1:為每個新項目創(chuàng)建一個 Git 倉庫

第一條規(guī)則很簡單,但是養(yǎng)成習慣非常重要。每當你開始一個新項目時,如你的簡歷、學習項目、編程挑戰(zhàn)的解決方案等等,你都應該創(chuàng)建一個新的 Git 倉庫,并將其推送到 GitHub 上。

擁有專用的 repo 是為你編寫的每一行代碼使用版本控制的第一步。使用版本控制是你加入公司、開始從事實際項目后的工作方式。及早學習并養(yǎng)成習慣。

注:如果使用終端比較麻煩,你無法在所有項目中使用 Git,可以考慮使用 Github 桌面應用程序(https://desktop.github.com/)。

規(guī)則 #2:為每個新特性創(chuàng)建一個新分支。

假設你希望在簡歷里構建一個新的「Contact me」部分/組件。那么為這個新特性創(chuàng)建一個專用的分支,給它一個有意義的名稱(例如 contact-me-section),并將所有代碼提交給這個特定的分支。


如果你不知道何為分支,請返回到 Github 流(https://guides.github.com/guidetion/flow/),閱讀我之前推薦的內容。

使用分支可以讓你和團隊成員以并行的方式處理不同的特性,同時將每個特性的代碼與其他代碼區(qū)分開來。這使得不穩(wěn)定的代碼不會輕易并到主代碼庫中。

即使你是團隊中唯一的成員,一旦你真正開始工作,熟練使用特性分支會使 GitHub 流的過程變得輕而易舉。

規(guī)則 #3:使用 Pull Request 將代碼合并到 Master 分支

默認情況下,每個倉庫都從一個主分支開始。永遠不要直接在主分支上進行改動。相反,你應該使用特性分支,并打開一個新的 PR,將特性分支代碼與主分支代碼合并。

在現(xiàn)實工作中,會有人查看你的 Pull Request,并在批準前進行代碼審查。GitHub 甚至會對你的代碼進行自動測試,讓你知道它是否有問題。如果你的代碼與主分支代碼之間存在合并沖突,你也會收到通知。例如,如果另一個開發(fā)人員推送到主分支的更改影響了你修改過的文件時,就會發(fā)生這種情況。

在代碼經(jīng)過審查、測試和批準之后,reviewer 會允許你合并 Pull Request,或者他們直接合并你的 Pull Request。


即使你單獨工作,也要習慣于創(chuàng)建 Pull request,以便將更改合并到主分支。這是幾乎所有開源項目使用的基本工作流程。如果你曾經(jīng)貢獻過某個項目,理解這三個規(guī)則將讓你的貢獻很容易被接受。

結語

如果你仍然感到困惑,那就慢慢來,記住這三條規(guī)則。不要試圖去想「如何做」,而要專注于「做什么」和「為什么」。

一旦「做什么」和「為什么」清楚了,在時機成熟時你就能知道「如何做」了。重復這個過程 2-3 次,你就會對它們得心應手了。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師考試動態(tài)
數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }