2014/01/10

[Git] 2014 年的新學習 -- Git 版本控管



Git 學習動機

2014 年初是我正式邁向 Git 的學習之路, 因為原本使用的中央控管 Server 掛了, 讓我有重新轉換新方法的機會. 這篇將會是 2014 技術文開春第一炮!

轉入 Git 前的版本控管歷史

過去學習 Subversion (SVN) 做中央型版本控管, 其實一個人的版本控管很簡單, 很少有什麼衝突要解決. 主要是為了做程式碼管理及記錄, 有時候可以找回以前的 code. 然後跟一兩個同事一起協同開發, 才進入 SVN 原始碼控管之路.

在 SVN 之前, 我想大家最常做的版本控管就是複製舊版本, 然後變更檔再加一個 v版本號 (如左圖 - 個人通常以年月日來做版本命名). 或是整包相關資料壓縮起來, 再加個版本號.最簡單的控管法, 但是不容易找資料.
 
有了 SVN 之後, 只要開始一個專案就做版本控管. 因為它是中央型管理, 所以在家中的 Server 就裝了一個 SVN Server, 即使多個共同開發者也沒問題. 導入 SVN 原因也是因為多人開發可以做好版本管理. 一直以來也都相安無事. 雖然大多是自己一個人的專案, 所以本機電腦的檔案一定都是最新版本.

就是那麼一天, SVN Server 掛了, Server 主機板燒了, 開不了機. 好啦...連不上 Server 沒有中央控管了, 怎麼辦? 該有的程式都在本機開發, 原始碼都還在, 也有部分 Zip 檔管控存檔, 但是開發記錄都在遠端呀.... 記錄沒了...

新的版本控制學習之路就此展開. 要學哪一種? Team Foundation Server 也是中央型, 但要軟體購置, 小成本的個人工作室暫時不考慮. SVN 領教了, 想學學其他的控管方式. 會接觸到 Git 也是因為看了很多技術達人分享 Git. 而且 Git 具有分散式、效能好、本地存取、無痛分支的特性 (ihower 專家這麼說~). 開始進入 Git 的學習之路. 萬事起頭難, 只要過了第一關, 就會關關難過, 關關過! 反正就是一腳就這麼踏進了 Git 版本控管的世界.

Git 基礎扎馬步

我的第一步是怎麼開始的?

其實用 SVN, 有個 GUI 的工具是必要的, 我在 SVN 的世界其實沒真正地 key 過任何的指令. 全部都是按一按, 從建立 Repository, 新增檔案, Commit 檔案, Merge 檔案, 都有相關的 GUI 來完成. 學習門檻算是低的, 只是觀念停在很簡單的控管方法 -- 建完 Repo, 以後只管 Commit 而已.



Git 的開始亦是如此, 2013年剛開始使用 Git 其實是用 SVN 的觀念在做, 也都是 GUI 來完成上述的基本動作. 直到最近, 想要在原始基礎開發新功能, 需要利用到 "分支" 這個 Git 必學必會的特異功能. 在 Git 的世界, 可以開分支免錢, 然後再做合併. 然後就此愛上 branch~


Git 的世界 = 分支 branch & 合併 merge


從指令開始學習, 可以了解原理及正確關念. 有了正確的關念, 再搭配 GUI 工具, 就會事半功倍!
接下來提供一下我的學習資源清單. 希望也可以幫助到一樣剛起步的朋友們. Let's go!

Git 學習資源

English References:
Git 官網 - Documentation
Git 官網 - Tutorial Videos
Pro Git - Book - 線上閱讀
YouTube - 輸入關鍵字 Git tutorial , 有一堆教學影片足夠學到天荒地老~

中文資源:
Will 保哥 - 30 天精通 Git 版本控管 (Git 正式起步, 我從這裡開始!!!! 啟蒙文~大推~~~~)
ihower - 版本控制系統 Git 精要

沒有留言: