資料科學Git入門
資料科學和工程領域之間的互動越來越密切,因為資料科學家正在參與生產系統並加入研發團隊。我們希望讓沒有工程經驗的資料科學家更容易理解核心工程最佳實踐。
我們正在編寫一本關於工程主題的手冊,例如Git、Docker、雲基礎設施和模型服務,這些都是我們聽說資料科學從業者正在思考的。
Git入門
Git是一個版本控制系統,用於跟蹤對原始碼隨時間推移所做的更改。
如果沒有版本控制系統,多人協作同一個專案將會非常混亂。因為沒有人跟蹤他們的修改,合併它們到一個單一的事實變得非常困難,解決最終的衝突變得不可能。Git以及在其之上構建的更高階系統(例如GitHub)提供瞭解決此問題的工具。
通常,每個使用者都會將一箇中心儲存庫克隆到他們的本地系統(稱為“origin”或“遠端”),各個使用者會將其克隆到他們的本地機器(稱為“本地”或“克隆”)。使用者在他們的計算機上儲存相關工作(稱為“提交”)後,將他們的完成的工作“推送”並“合併”回中心儲存庫。
Git和GitHub的區別
Git既是用於跟蹤和合並原始碼更改的基礎技術,也是其命令列客戶端 (CLI)。
GitHub是在Git技術之上建立的線上平臺,使它更容易使用。此外,它還提供自動化、拉取請求和使用者管理等功能。GitLab和Sourcetree是另外兩個選項。
資料科學中的Git
在資料科學中,我們將使用一些模型和演算法來分析資料,一個模型可能由多人建立,這使得同時處理和更新變得困難,但是Git透過儲存以前的版本並允許許多人在同一個專案上同時工作來簡化這一切。
讓我們瞭解一些在開發者中非常常見的Git術語。
術語
倉庫 (Repository) − 包含專案所有分支和提交的“資料庫”。
分支 (Branch) − 倉庫的替代狀態或開發路徑。
合併 (Merge) − 將兩個(或多個)分支合併到一個分支中,一個事實的定義。
克隆 (Clone) − 在本地複製遠端倉庫的過程。
Origin − 本地克隆來自的遠端倉庫,稱為origin。
Main/Master − 根分支的常用名稱,是主要的事實倉庫,包括“main”和“master”。
暫存 (Stage) − 在此階段選擇要包含在新提交中的檔案。
提交 (Commit) − 儲存對倉庫中檔案所做暫存修改的快照。
HEAD − 指向本地倉庫當前提交的縮寫。
推送 (Push) − 將更改傳送到遠端倉庫以供公開檢視。
拉取 (Pull) − 將其他人的更新新增到您的個人倉庫。
拉取請求 (Pull Request) − 在將您的修改合併到main/master之前,使用拉取請求機制來檢查和批准它們。
正如我們上面所討論的,為此我們需要一些常用的命令,讓我們在下面討論它們:
git init − 在本地計算機上建立一個新倉庫。
git clone − 開始編輯一個已存在的遠端倉庫。
git add − 選擇要儲存的檔案(暫存)。
使用git status檢視您已修改的檔案。
git commit − 將選定檔案作為快照儲存(提交)。
使用git push命令將儲存的快照(提交)傳送到遠端倉庫。
使用git pull命令將其他人當前的提交拉取到您的計算機。
使用git branch建立或刪除分支。
git checkout − 切換分支或撤銷本地檔案修改。
git merge − 使用git合併分支以建立一個單一分支或一個單一的事實。
流暢處理Git流程的規則
Git在實際專案中有很多優點,但是有一些規則或情況需要使用者小心地處理一些資料或步驟,以確保安全或其他原因。
有一些規則可以幫助流暢地將專案上傳到GitHub。
不要推送資料集
Git用於跟蹤、管理和儲存程式碼,但將資料集放在其中不是一個好習慣。有很多好的資料跟蹤器可用,請跟蹤您的資料。
不要推送金鑰
在GitHub或Git上釋出或推送的程式碼可能是私有的,使用者也可以將其公開。但是,即使在GitHub上推送的程式碼或資料是私有的,也不建議出於安全原因將密碼等金鑰放在其中。
不要使用 --force
在各種情況下都會使用-force方法,但是大多數情況下不建議使用它,因為在將程式碼推送到Git時,如果出現錯誤,編譯器或CLI會顯示使用force方法將資料放到伺服器上,但這不是一個好的方法。
進行小的提交併編寫清晰的描述
初級開發者可能不擅長進行小的提交,但建議進行小的提交,因為它們使開發過程更加清晰,並有助於將來的更新。此外,編寫良好且清晰的描述也使這個過程更容易。
結論
Git是一個版本控制系統,用於跟蹤對原始碼隨時間推移所做的更改。如果沒有版本控制系統,多人協作同一個專案將會非常混亂。Git既是用於跟蹤和合並原始碼更改的基礎技術,也是其命令列客戶端 (CLI)。GitHub是在Git技術之上建立的線上平臺,使它更容易使用。此外,它還提供自動化、拉取請求和使用者管理等功能。