【工程師必懂的版本控制技術】什麼是GitHub?

不是工程師也能玩 GitHub !

//MIC 講技術

只要工作要 coding 的,就一定聽過 GitHub ,在工程師的世界,GitHub 就是如此強大的存在,甚至有人認為「GitHub 就是工程師的臉書」GitHub 究竟是什麼 ?能掀起如此巨大的潮流 ?

事實上,GitHub 是一個「透過 Git 進行版本控制」的「原始碼代管服務平台」簡言之,就是各種開源軟體(專案)的聚集地,只要專案作者公開這個專案,任何人都能存取、使用、甚至對專案的內容做出修改,而專案作者能對這些改動用 Git (等等會介紹的版本控制工具)來進行控管,進而達成一種「共同創作」的理念。

雖然講了這麼多,但這並不是本文的重點 \(-w-)/

我們接下來會討論 :

  1. 什麼是版本控制 ?
  2. Git 與版本控制
  3. 不是工程師也能用的 GitHub
沒錯就是官網的圖

什麼是版本控制 ?

在介紹 Git 之前,先來聊聊什麼是版本控制(版控)吧!

如果想要減少資料不見的機率,只要是有點安全概念的人,都知道要備份吧 ? 有了備份,就有辦法還原,即便是電腦中毒掛了,只要備份還在,就能夠把以前的資料拿回來。

這便是最原始的版控系統,VCS(Version Control System),只在本地端(自己的電腦上)備份並控管,只要本地設備一出狀況,就會血本無歸

同樣道理,公司裡儲存大型數據的資料庫,或是開發部門的專案,也需要備份。對於公司而言,維持這些資料的完整可說是至關重要,千萬不能有「一跳電資料就全部消失還還原不了」這類情況發生。

但除了備份之外,如果要在公司中使用,我們還得實一個功能 ——「共用」。

想像一下,在一間 100 人的小公司裡,一次只有一台電腦能連上資料庫,如果遇到問題需要更改,就得排隊排好長一段時間,等到排到時可能問題已經擴散到其他檔案了...

為了方便多人共用,便出現了備份 x 共用的版控,CVCs(Centralized Version Control System),比起 VCS,可以接受多人共同使用,但還是繼承了上一代的缺點,只要本地設備一出狀況,就會血本無歸

看到這裡,相信大家對版控也有了基本的概念,可以突入第二點了!

Git 與版本控制

Git 與其他版控系統最大的差異就於,它解決了「單一儲存區」這項最致命的缺點,改為「分散式儲存」, DVCs(Distributed Version Control System) 將資料分散於不同設備上(就是儲存資料的本地端),如此一來,就算其中一處設備損壞,也不影響其他用戶使用。

GitHub 便是採用 Git 的理念,除了專案作者本人的電腦上,也在 GitHub 官網上儲存一份備份,而且每個曾進行過更動的本地端(就是改過檔案的人的電腦)也能重新放回官網上,形成新的備份。

在這邊分享 Git 開發時期的一小段故事,放鬆一下~

其實 Git 的開發者 林納斯·托瓦茲(Linus Torvalds,當今最著名的電腦工程師之一),當初並不是為了開發版本控制系統而開發 Git 的,而是為了方便他現有的開源專案—— Linux 作業系統的合作開發所做的工具。

由於作業系統的程式碼隨隨便便都是百萬行起跳,因此,良好的版控工具變得至關重要,除了在錯誤出現時,能有效的還原回正確的版本,還要能將各種程式碼反覆在各裝置上測試與轉移。但是 Linus 對當時的版控工具抱有疑慮,而當時的版控工具公司又拒絕與 Linus 團隊合作改進版控工具,無耐只好自己做一個了,Git 才終於問世。

而 GitHub 的誕生,又是另一個故事了。

不是工程師也能用的 GitHub

讀到這裡,相信大家心中難免都會有種「這種工程師用的工具,真的跟我有關嗎 ?」的疑問。

其實,只要是電腦工作者,都可以用 GitHub 來讓生活變得更方便!

GitHub 是公開的線上平台,因此很適合拿來放一些作品集,或著是共同編輯的文案等,有著類似端硬碟的功能(而且還是免費的,只要不介意會公開的話)。而且每當有人對文案進行改動,GitHub 還會記下改動時間、編輯者等資訊,又能在更動時檢查後再與原版合併,因此很方便團隊進行共同編輯。

就有日輕小說的漢化組(翻譯網路小說的團體)在 GitHub 上進行作業,除了共同翻譯以外,翻譯後的校對又能讓所有人看過再進行更動,有效提昇了作業效率。

關於技術層面,雖然上手 GitHub 有一定的門檻,但是教學資源也很豐富,只要將 GitHub 的設計理念與基本操作搞懂,要熟能生巧並不是什麼太大的問題。

最後再來複習一下

  1. Git/GitHub 不要傻傻分不清 (Git是一種版控工具,GitHub是開源軟體平台)
  2. 版控的目的就是 備份+共用

◎作者:政治大學資科系 秦嘉佑

◎核稿編輯:政治大學財政系 潘柏樺

| 看完這篇⽂章你還想看:1. 面對大數據手足無措嗎?試試看這些分析方法吧!2.【人工智慧的法律責任】當人工智慧造成損害如何處理損害賠償?

--

--

Maker in College 大學新創平台

Hi 我們是一群NCCU政治大學的學生,我們創立的大學新創平台致力於研究新創公司、新創理念、新創方法的社團。|FB:大學新創平台Maker In College/ IG:maker_in_college|