
敲黑板!你和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ī)則前,請先完成以下任務:
如果你對 Git 和 Github 還不熟悉,請先從 HubSpot 上完成這個很棒的教程:https://product.hubspot.com/blog/git-github;
如果你還不了解 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
訓練與驗證損失驟升:機器學習訓練中的異常診斷與解決方案 在機器學習模型訓練過程中,“損失曲線” 是反映模型學習狀態(tài)的核心指 ...
2025-09-19解析 DataHub 與 Kafka:數(shù)據(jù)生態(tài)中兩類核心工具的差異與協(xié)同 在數(shù)字化轉型加速的今天,企業(yè)對數(shù)據(jù)的需求已從 “存儲” 轉向 “ ...
2025-09-19CDA 數(shù)據(jù)分析師:讓統(tǒng)計基本概念成為業(yè)務決策的底層邏輯 統(tǒng)計基本概念是商業(yè)數(shù)據(jù)分析的 “基礎語言”—— 從描述數(shù)據(jù)分布的 “均 ...
2025-09-19CDA 數(shù)據(jù)分析師:表結構數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結構數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-19SQL Server 中 CONVERT 函數(shù)的日期轉換:從基礎用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關聯(lián)查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18DSGE 模型中的 Et:理性預期算子的內涵、作用與應用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結構數(shù)據(jù)特征價值的專業(yè)核心 表結構數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結構化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應用 在數(shù)據(jù)分析與統(tǒng)計學領域,假設檢驗是驗證研究假設、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結構數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結構數(shù)據(jù)(以 “行 - 列” 存儲的結構化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結構數(shù)據(jù)價值的核心操盤手 表格結構數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務邏輯:從規(guī)則拆解到數(shù)據(jù)把關的實戰(zhàn)指南 在業(yè)務系統(tǒng)落地過程中,“業(yè)務邏輯” 是連接 “需求設計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11