當前位置:
首頁 > 知識 > 如何優雅地向別人介紹高端大氣上檔次的Git

如何優雅地向別人介紹高端大氣上檔次的Git

選自GitHub.io

作者:Rachel Carmena

機器之心編譯

參與:李詩萌、路雪

本文主題是如何向工具初學者介紹分散式版本控制系統 Git。除了了解關於 Git 的基本知識以外,大家還可以學到一些工具學習方面的東西。

我發現的問題

我的一些職業經歷涉及跨職能領域,因此我了解所有同事的工作方式。我記得有一家公司在我加入的幾周前才開始使用 Git。

我用三步把 post-it 放到屏幕上:第一步是 add,第二步是 commit,第三步是 push。

他們不知道為什麼要用這三步,他們只知道為了防止發生其他問題,他們應該遵循這三個步驟。但是問題還是頻頻發生,所以我決定準備一個關於 Git 的討論會。

想法

我喜歡在頭腦中繪圖。我不寫「思維導圖」,因為它們是眾所周知的圖像形式。而我所說的「圖」是一種大腦中的有框架、結構化或其他形式的圖像表徵。例如,我在頭腦中想像骰子來學習加法。

所以我準備了一些圖。理解這篇文章不一定需要看懂這些圖。但出於可訪問性,我對每一張圖都作出了解釋。

在這種情況下,辭彙的教學就非常重要了。否則他們無法理解來自 Git 的信息。這些圖是一種很好地向他們介紹辭彙的方式。

分散式版本控制系統

概括圖包括四部分,分別是:

開發環境中的:

工作區

暫存區或索引

本地版本庫

伺服器中的:

遠程版本庫

到那個時候,你就可以解釋分散式版本控制系統的好處了。

複製版本庫

在複製版本庫時,遠程版本庫中的數據要傳遞到兩個區域:

工作區

本地版本庫

在工作區中進行更改

工作區中有兩類文件:

追蹤文件:Git 知道的文件。

未追蹤文件:因為尚未添加因此 Git 不知道的文件。

更新遠程版本庫

當工作區更改就緒時,必須先把它們添加到暫存區中。

當暫存區中有一組特定的更改時,我們就需要在本地庫中創建帶有這些特定信息的 commit。

當本地版本庫中有一或多個準備和世界其他地方共享的 commit 時,我們必須把它們 push 到遠程版本庫中。

這時,開發環境中的文件狀態已經有所不同了:已修改、已暫存和已提交(modified, staged and committed)。

此外,你還可以解釋:

如何顯示工作區的文件更改:git diff

如何顯示暫存區的文件更改:git diff –staged

在將文件添加到暫存區後,如何在工作區中更改文件

等等

更新開發環境

抓取(fetch)

執行 git fetch 後,遠程庫中的數據將僅傳遞到本地庫中。

Pulling

當執行 git pull 後,遠程庫中的數據會傳輸到兩個區域:

本地庫:抓取(fetch)

工作區:合併(merge)

你可以用 git pull—rebase 查看 commit 歷史。它是由 fetch rebase 而不是 fetch merge 組成的。它將會重新執行你的本地提交,而且你無法看到提交歷史中已知的 diamond shape。

下一步

你可以在開發環境中添加另一個區域來解釋暫存區:dirty work directory。

如果人們將這些概念內化,他們就可以建立堅實的基礎,從而更容易地使用分支、提交歷史以及衍合(rebasing)等。

溫馨提示

我也曾用過其他版本控制系統(Visual SourceSafe、TFS 和 Subversion),以我的個人經驗來講,缺乏知識對於使用舊工具和新工具而言都有害。我們不僅僅要選擇工具,還要掌握工具。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

有了Julia語言,深度學習框架從此不需要計算圖
BP不用算梯度,這樣的線性反向傳播也能Work!

TAG:機器之心 |