[少數派]如何學習Git

用玩遊戲的方式學習 Git

目錄html

  1. 爲何要學習 Git
  2. 怎麼學習 Git
  3. Learn Git Branching
  4. 其餘學習資源

用遊戲的方式來學習,是一種有趣而高效的方式。git

從剛接觸電腦時的打字練習軟件 金山打字通,到程序猿寫代碼的利器 Vim 都有小遊戲(金山打字通遊戲VIM Adventures)來幫助咱們入門。當你的目標從掌握技能轉變爲打通遊戲以後,學習自己也就再也不痛苦。在完成每一關的過程當中,都能增長咱們的技能熟練度和成就感。github


Figure 1. Lena

Learn Git Branching,就是一個用小遊戲帶你入門的 Git 的網站。編程

爲何要學習 Git

Git 是一種分佈式的版本管理系統,做用和網盤有點相似,可是功能性和靈活性都更強大。若是你是一個計算機專業的學生或從業者,Git 的重要性不言而喻;可是對普通人而言,Git 也有備份數據、保存歷史記錄等重要做用。vim

不怕斷電、斷網

數據無價,但不少時候咱們沒法保證本身的電腦不出問題。有不少時候咱們會懷念上一個小時、前天或不久之前本身寫的那些文字、畫過的那些圖1 ,如何無缺的保存數據是個永遠的話題。將工做保存在雲端也許會增長咱們心裏的安全感,這也是不少人會用網盤進行備份的緣由。安全

Git 的「本地提交」較好地解決了這個問題,它的工做方式大概是這樣:即便沒網絡,咱們也能夠先工做,等到連上網絡後再打包上傳。每一個文檔的名字都寫有主要的工做(修改)內容,並且咱們還能清楚地看到文檔之間地區別和改動,Git 還會自動把歷史紀錄保存下來。對於愈來愈多開始從事移動辦公、遠程工做的人來講,因爲網絡環境不穩定,即便他不編程,也能從 Git 中受益。服務器

嚴肅寫做的一個個節點

iOS 上的知名筆記工具 Drafts 會在你寫做時,每隔一分鐘幫你保存一份當前文檔的「快照」,這樣就能夠方便地找回以前的某個寫做版本了。你以爲不滿意而刪除的一段文字,總能夠在歷史版本中找回,很貼心。保存寫做的歷史版本其實就是創建寫做節點的過程。而這,也是 Git 所擅長的。網絡


Figure 2. Drafts 的版本記錄界面

對於論文、書籍這些嚴肅的寫做內容來講,咱們在寫做的時候不會頻繁的更改。深思熟慮以後,在一個節點時,咱們有必要保存一下這一階段的成果。同時,咱們在對之前工做進行修改以後,也但願能便利地顯示和以往的不一樣2 。app

Git 最本來的使用方式

Git 是一個分佈式版本控制軟件,於2005年以 GPL 發佈。它最初是爲更好地管理 Linux內核 開發而設計。它不須要服務器端軟件就能夠運做版本控制,使得源代碼的發佈和交流極其方便3 。分佈式

GitHub 是經過 Git 進行版本控制的源代碼託管服務4 ,咱們每一個人均可以把本身的代碼託管在上面。同時,也能夠看看別人寫的代碼,相互交流,極大方便了軟件項目的多人協做開發,也推進了開源軟件社區的壯大。GitHub 所具備的社交性讓不少人戲稱爲最大的同性交友網站(男性用戶佔絕大多數)。若是你願意,能夠把別人的代碼下載到本地隨意修改,放心這不會影響他人。總之,在 GitHub 上,你們都用同一種語言進行代碼倉庫的操做,那就是本文的主角:Git。

若是你想開始學編程,必定想記錄一下本身成長的路徑。想必也必定會去 GitHub 看一看(來,這裏是 按加星數排序的代碼倉庫),這時學一下 Git 不是瓜熟蒂落的嗎?

怎麼學習 Git

曾經我在好奇心的驅使下去學習最淺顯易懂的 Git 教程 廖雪峯的 Git 教程。但通過一段時間以後,我發現本身僅僅會使用 git clonegit addgit commitgit push 等簡單語句。以後屢次查看 git rebase 的用法,也一直沒有理解。咱們來看看最基本的幾條命令有什麼做用:

git clone 克隆:下載遠程代碼倉庫到本地;
git add 添加:添加文件、修改後的文件到暫存區;
git commit 提交:創建本地倉庫的工做節點;
git push 推送:將本地倉庫推送到遠程代碼託管服務、網站。

就像不少次把學過的知識還給老師的經歷,此次只記住幾個簡單命令的過程依然沒讓我失望。這些命令是我平時使用最多的,因此記得最牢,而其餘命令只能用到時再去查了。沒有通過實踐的知識好像沒法停留在腦子裏。

前幾天在 twitter 上閒逛,發現了一個能夠交互式學習 Git 的網站 Learn Git Branching。嘗試了一下發現效果然的很棒,有一種在玩編程遊戲的感受。回想啃着玩 Human Resource Machine 的經歷,證實不在於知識自己多艱深,只要學習曲線不陡峭,咱都能爬上去。

Human Resource Machine

Human Resource Machine

Learn Git Branching

歡迎光臨

歡迎光臨

網站是有中文的,並且界面很不錯,給人的第一印象很友好。

關卡選擇

關卡選擇

關卡選擇界面能夠看到,有「主要」、「遠程」兩部分。每一部分的內容很少,覆蓋了基本的用法。每一關都是一個模擬的小項目,經過上手操做很容易得到代入感。代碼自己的用法在玩遊戲的過程當中領會到,這種感受很棒,讓人上癮。

遠程部分示範

遠程部分示範

教程的每一關都有引導,告訴你示範動做是怎樣的、會有什麼結果。稍做了解以後就能夠本身上手探索。模仿以前教的動做,作錯了能夠 reset 命令從頭開始。完成以後,能夠用 show solution 命令查看答案。這種即時反饋的學習讓過程變得有趣。

提交

提交

從 Git 到 GitHub

說了這麼多,簡單講一下具體的流程:

  1. git clone 下載代碼到本地。
  2. 建立了本身的文件,或者進行了修改,能夠用 git add . 把全部文件加入暫存區,等待創建節點。
  3. git commit -m "這一階段工做描述" 儘可能細化你的節點,別作了不少工做才提交一次呀。
  4. git push 把以前創建的一系列節點推送到 GitHub 發佈、保存。
  5. git pull 將 GitHub 的改動同步到本地,好比你在辦公室電腦的改動同步到家裏,或者多人協做項目中他人的改動同步到本地。

總結一下就是:「記錄修改、本地提交、傳到雲端」的過程。

其餘學習資源

除了以前文章中提到的 廖雪峯的 Git 教程 外,還有不少學習資料。好比:

Git 自己不難,但學會以後就是另外一方天地。儘快在項目或工做中實踐吧!

  1. 藉助 Git 對 Sketch 文件進行版本控制 https://sspai.com/post/40595
  2. sainho 在他的文章中 https://sspai.com/post/43061 提到了使用 Git 來推動本身所寫書籍的進度。
  3. 維基百科 Git 詞條 https://zh.wikipedia.org/wiki/Git
  4. 維基百科 Github 詞條 https://zh.wikipedia.org/wiki/GitHub

轉載聲明:此篇文章版權歸少數派全部 ©https://sspai.com/post/47694 / 責編: Minja

相關文章
相關標籤/搜索