Git 版本控制系統 簡介

Git,(Version Control System, VCS) 為一種分散式版本控制系統,同時也是許多資深、新手工程師們都會接觸使用的開源工具之一。可幫助代碼歷史修改版本,讓使用者更直覺且簡單地調取過去某個歷史版本的專案進度。

補充一下git歷史插曲,Git 是由Linux作業系統之父Linus Torvalds開發出來的工具,當初為了減輕維護Linux Kernel的作業量 (去Google了一下才知道這個專案計劃承載著資深工程師們的智慧結晶,e.g. 1500萬行代碼 (截至2020年達到2780萬行)、1000位以上工程師維護的同時開發作業 & 到2020年每天5000多行代碼需要被merge進去專案裡 🙌 ),為了解決上述冗長的共同開發週期,Git被 Linus花了十天時間開發出來,也就這樣問世了!!!

因此,它的設計本意不光是管理Linux kernel system內部之外,也能夠透過這個工具有效率地處理各個範圍由小至大規模的專案開發。

以下是使用git版本控制時常接觸到的相關專有名詞:

Repository:

它解釋為版本儲存庫,負責儲存代碼和專案相關資料,例如:代碼、設計檔、圖片等。

Local:

指的是本地開發電腦。

Remote:

代表著遠端伺服器,也可以表示公司共同開發專案的伺服器。

介紹完git的由來及相關名詞後,以下會解釋Git各項優點:

  1. 首先,會再提及到Version Control System (簡稱VCS)。它可分為集中版本控制系統 (Centralized Version Control System) & 分散式版本控制系統 (Decentralized Version Control System)。顧名思義,集中版本系統的資料庫都存在中央伺服器,然後工作時需要從自己的本地電腦(local)從中央伺服器上擷取(fetch)最新的代碼版本後,再繼續基於之前更新的版本上持續新增自己的代碼。好比一台打卡機,要上班打卡需要把出勤卡放入機器裡面自行去更新今天出勤的紀錄。然而,需要透過集中式版本控制系統進行專案更新的話,前提條件是不能沒有網路連線的情況,因為沒有連線的情況下,就不能更新自己變更的代碼內容外,也會無法跟其他共同開發的工程師們同步工作內容。幸運地是,分散式版本控制系統讓使用者們可獨自擁有完整的Repository,意思就是儲存版本庫在本機電腦上。也因此,分散式版本控制相比集中式,它也更為安全且如果其中一個本地資料庫損毀,還是能夠透過其他使用者們共同進行的專案來擷取便可繼續執行開發工作。
  2. Git包含命令字元(Command)工具集的應用(感謝Linus當初抱持著開發比BitKeeper更好的開源工具才有了讓底層工程師們都能使用的開源工具😂),可以在鍵盤上便捷使用指令syntax來完成代碼修改、查看log、提交代碼最新進度等相關作業。這套工具集的核心概念是水管系統(Plumbing),意思是在底層作業上做好了輸送水源的基礎,然後在上層水管上蓋洗手槽等你想到的生活應用。
  3. 使用Git便能輕鬆地在Github上建立屬於自己的作品portfolio。原因在於Github公司提供Git代管服務,讓開發者們能隨心所欲的在Github上拖放大型專案以及個人作品集等。另外,GitHub page上也提供了許多人性化的設計功能,舉例來說:Contribution能夠讓網路上的用戶能夠檢視到該開發轉案人員的過去貢獻程度為多少。還有團隊協作及社交功能,可追蹤其他開源工程師的開源專案,也可以fork對方的專案至本地進行修改或者是使用,如果欣賞對方的作品,也可以點擊星星表示讚賞。

總結:

對於踏入軟體開發的領域來說,它是一個不可避免且好玩實用的開發工具。
再了解它誕生的來龍去脈以及優點過後,沒想到原本一個為了解決各個層級的開發者們所面臨的開發通點而誕生出來的Git工具,可以很大程度地改變了現在許多工程師們的工作樣貌,同時也激發了許多人想要開發出更有趣的發明來解決一些生活問題(包括我)。

之後,也會持續紀錄Git指令集的使用心得,謝謝閱讀 📖🧑‍💻。

References

  1. 什麼是 Git? 為什麼要學習它?, link: https://gitbook.tw/chapters/introduction/what-is-git
  2. Git 新手入門教學 — part 1, link:
    https://kopu.chat/git%e6%96%b0%e6%89%8b%e5%85%a5%e9%96%80%e6%95%99%e5%ad%b8-part-1/

--

--

👨‍💻

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store