這才是Git的正確學(xué)習(xí)方式!
:
你想要的,這里都有!
我認(rèn)為學(xué)習(xí)一門知識最怕的就是一知半解、草草了事,對于Git這種工具類更是如此。
有很多同學(xué)工作后,日常用到git clone、git add、git commit,能夠解決日常開發(fā)中的基本操作就認(rèn)為差不多會了。
但是,遇到復(fù)雜點的問題,發(fā)現(xiàn)對Git的基本原理、操作并沒有很深入的理解。
這樣,只能再去百度查解決方法,查了半天,踩了不少坑終于解決了,下次又遇到同樣的問題,發(fā)現(xiàn)之前查的內(nèi)容全忘了,主要原因還是知識不成體系,當(dāng)初查詢的主要目的還是為了解決當(dāng)下問題。
這種方法其實并沒有少花時間,而且在開發(fā)過程中會感覺步履維艱,一步一個坎。
所以,我建議如果想在開發(fā)中用好Git,還是需要先系統(tǒng)的學(xué)習(xí)一下Git的用法。
網(wǎng)上搜一下Git學(xué)習(xí)教程,會發(fā)現(xiàn)多如牛毛,有免費的,也有昧著良心收費的。
其實,我覺得從事開發(fā)工作,最好的學(xué)習(xí)資源往往就是官方提供的免費文檔,權(quán)威,而且理解深度要比很多博主「二次加工」的好很多。
因此,學(xué)習(xí)方面我還是更推薦Git的官網(wǎng)文檔,這里放一下鏈接:
打開文檔可以看到,它全面涉及Git基礎(chǔ)、Git分支、服務(wù)器上的Git、分布式Git、Github、Git工具、Git內(nèi)部原理等內(nèi)容,覆蓋非常全面。

而且,在每一篇文檔中,它都會理論、操作、圖示相結(jié)合,內(nèi)容循序漸進,由淺入深,是一份質(zhì)量很高、內(nèi)容很嚴(yán)謹(jǐn)?shù)墓俜轿臋n。

此外,官方文檔提供PDF、epub兩種格式的下載,如果喜歡離線閱讀或者打印出來看的同學(xué),它也很不錯。
基礎(chǔ)知識學(xué)完了,可能有些同學(xué)對于Git的理解還是不夠深入,接下來就需要「動手實踐」,這里也給大家推薦一個免費開源的工具--LearnGitBranching,目前在Github已經(jīng)26k+Star,它或許不是最好的,但是在我看來它非常特別,而且對于理解Git命令有很大的幫助。

簡單概括,LearnGitBranching是一款Git的可視化學(xué)習(xí)工具,它通過交互式的方式教授大家學(xué)習(xí)Git,并且提供一些列的挑戰(zhàn),能通過可視化及挑戰(zhàn)幫助大家理解Git操作和命令。
通過這種交互式的方式,可以幫助開發(fā)人員更加直觀的理解每種操作對應(yīng)的效果,對于加深對Git命令的理解很有幫助。
除了可視化、交互式的方式,它還提供了一些其他功能。
沙盒模式

默認(rèn)情況下,應(yīng)用程序以“沙盒模式”啟動,并已創(chuàng)建基本存儲庫。在這里您可以輸入命令并隨心所欲地處理存儲庫。
你可以在沙盒里做如下操作:
undo:撤消上一條命令的效果
reset:從頭開始
git clone:模擬遠程倉庫
關(guān)卡

輸入levels可以查看可用的課程/挑戰(zhàn),關(guān)卡里提供了從基礎(chǔ)到高級、技術(shù)、技巧不同等級的教程和挑戰(zhàn),對于加深理解很有幫助。
除此之外,LearnGitBranching有一項git golf功能,它會跟蹤解決每個調(diào)賬使用了多少命令,可以更加直觀的看到自己對Git的掌握程度。
關(guān)卡生成器
如果覺得默認(rèn)提供的關(guān)卡不夠,還可以使用 build level 命令構(gòu)建關(guān)卡。
它會提供一個對話框?qū)⒁龑?dǎo)完成每個過程,我們可以提交這些關(guān)卡,也可以分享給其他同學(xué)。
傳送門:
Github地址:
除此之外,再給大家推薦另外一個可以和learnGitBranching結(jié)合使用的開源工具。
這款開源工具的名字叫做Git Explorer,目前在Github上1.6k個star。

這款工具在Github上的簡介是“無需網(wǎng)絡(luò)搜索就可以找到正確的Git命令”。
如果說learnGitBranching在可視化方面做的非常貼心,那么Git Explorer則更多偏重命令層面理解。
從名稱也可以看得出來,它主要就是一款面向Git的瀏覽器,簡單來說,你只需要在Git Explorer上點擊選擇你想要的動作,它就可以動態(tài)輸出相應(yīng)的命令。
重點是,這些都是正確的命令,就不用上網(wǎng)搜索各種亂七八糟的播客、到處踩坑浪費時間了!

以上圖為例,分步選擇自己想要的操作:
想要'添加'
添加'一個分支'
添加后'切換到新分支'
然后,它就會動態(tài)輸出用法命令:
git checkout -b <new name>
這個是開發(fā)者比較經(jīng)常會遇到的一種Git使用場景。

除此之外,它還有很多更加深入的用法。
比如:
cherry-pick
configure
debug
rebase
recover
...
下面再看一下稍微復(fù)雜一些的用法:

它不僅給出使用命令,還會給出一些用法提示,介紹它如何使用。
因此,Git Explorer不僅可以作為一款參考工具,日常開發(fā)時用來查詢命令,還可以作為一款學(xué)習(xí)Git的工具來用。
傳送門
Git Explorer:
Github項目地址:
建議大家有空可以多瀏覽Github,有很多好用的開源免費工具。但是,目前Github上項目多如牛毛,而且刷榜現(xiàn)在也非常嚴(yán)重,想要找到優(yōu)質(zhì)的項目變得越來越難。這里,給大家推薦Github上一個非常不錯的項目《DevWeekly》,這個項目每周都會精挑細(xì)選一些優(yōu)質(zhì)的開源項目,涵蓋C++、JAVA、JavaScript、Python、Go等不同編程語言。此外,還有一些開源工具、優(yōu)秀的技術(shù)文章: