寫給 Git 初學者的7個建議
當我剛剛開始使用Git的版本控制時,我根本不確定我付出那麼多時間是不是會得到回報。Branch、Stage、Stash,這些Git名詞對我來說都非常陌生。
而今天的我已不能想象生活沒有Git會變成什麼樣。Git不僅提供了我非常需要的版本控制功能,還讓我變成一個更優秀的程式設計師。
這裡有一系列可以幫助你的小貼士,可以讓Git成為你開發工作中非常重要的一部分。
第一條:花時間去學習Git的基本操作
學習Git的基本操作並不是要求你把整個Git文件從頭到尾讀完(但如果這就是你的方式,我也不會反對)。
Git裡面有太多的教育內容,我很確定裡面一定有對你胃口的最佳學習方式。
看一下以下這些Git學習資源吧:
- 試試Git – 15分鐘的Git互動教程
- 提示和技巧(Ry的Git教學)是常見Git功能的實踐教程
- Git Ready是一個收藏有許多簡單而簡短的Git提示的網站
- Git Tower學習區是一個在我的網站上的Git學習資源列表
- Pro Git一本讓你深入瞭解Git的線上書籍
第二條:從簡單的Git工作流開始
少即是多。
常常的,Git會和一個複雜的工作流聯絡起來。不過我可以這麼說:你還暫時不需要為了Git的諸多好處,而一下子變成Git大師。
Git的工作流是可以非常簡單的 —- 而且在許多情況下你需要的就是這麼簡單。你當然可以用multiple remote repositories、issue pull request、rebase changes等等,但是你不想用這些的話完全可以不用。
從簡單的工作流入手也會使日後新增複雜性或者使用Git高階功能變得簡單。當你需要使用這些功能的時候,Git已經準備好了。
這裡有一些不同的Git工作流的例子,你可以從他們的想法中得到啟發
總的來說:不要因為覺得Git什麼都要學就壓力很大,你完全可以從今天開始使用Git。
第三條:不要再害怕犯錯誤
Git最出色的一點是:它幾乎是100%易上手誤操作的。
記住以下幾點會讓你晚上睡得更香:
- Git基本上不刪除資料。即使是那些看起來是刪除資料的操作,實際上是為了讓你更快的撤銷刪除,而在向系統新增資料。
- Git基本可以撤銷所有操作。我鼓勵你更多的實驗和探索你的想法,因為這就是使用版本控制系統系統的最主要的好處之一。
- 你團隊的每一個成員都在他/她的計算機中有各自的副本。本質上這更像是整個版本控制專案中的冗餘備份(包括包括整個歷史紀錄),你捅了大婁子而且還沒辦法還原這種情況是極其少見的。
第四條:理解分支概念
在Git裡面,分支這個概念是你一開始能學到的最有用的東西了。分支允許你隔離開發你的專案,而要想成為一個高效的Git使用者,這是非常關鍵的一點。
一開始這聽起來好像不是什麼大事,但一旦你完全的理解了分支概念,你會開始想沒有這個你怎麼活下去。
儘管其他的版本控制系統也會使用分支概念,Git是第一個實現它,並讓它變的好用的系統。
這裡有一些有助你瞭解Git分支概念的資源:
第五條:學習暫存區
當你的提交裡面只包含一些相關的變化時,版本控制會變的非常有用[b],它保證了你的提交可以被沒有任何副作用的回滾,經常提交的習慣也可以讓你的同事更好的瞭解你的進度。
Git有個功能叫暫存區讓這一切都變為可能
學習使用暫存區,並愛上它,因為這是Git裡面最重要最獨立的一個模組。
第六條:用Git圖形介面
儘管使用圖形介面絕對不會是一個要求,但我還是高度推薦使用。
使用圖形介面讓大多數操作都變得簡單,讓你在專案開始時便佔盡優勢。
不管怎麼說,使用Git不應該只是記住各種命令和引數,而是改進你的程式設計工作流。如果圖形介面可以做到這一點的話,沒有理由讓簡單的事變的困難嘛。
看一下這些Git介面吧:
- Tortoise Git – Windows平臺下的開源Git圖形介面
- GitX(L) – Mac OS X下的開源Git客戶端
- SourceTree – Windows和Mac下的免費Git或Mecurial介面
- Tower – 我們公司為Mac使用者所出的Git介面
使用圖形介面並不能減輕你學習Git基礎的負擔,不過一旦你快樂的征服了Git,使用這些工具會讓你的生活變得更輕鬆。
第七條:對自己承諾你會用Git
使用一個新工具一開始會讓人非常頭疼,走過這條學習曲線的方法只有一個:繼續走下去。
做一個充分的承諾,不要回頭。在你平常的工作流裡引入Git很快就會被證明這是你近期做的最大的,最有意義的決定。
避免這種情況:「我會在這個專案裡使用Git,但其他專案就再說了。」至少一開始不要這樣。
充分承諾的這種心態會讓你有更多的機會去練習,讓事情變得更加簡單,因為你知道你現在這個專案用了版本控制系統。而更重要的是,讓Git成為你的程式設計習慣。
未來不久,你就會看到只有那麼一些情況不需要用到Git,
對自己做一個100%的承諾,作為Git征服之路的開始。