iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 2
2
Modern Web

Git與Github-30天學習歷程系列 第 2

Day02【Git與GitHub】Git是什麼

【Git與GitHub】Git是什麼

Git 簡單來說就是個版本控制系統 (Version Control System, VCS)

Git簡單來說就是個版本控制系統

結果,
客戶跟你說:「內個...因為我們後來想了一下覺得原本的那個功能還不錯,所以麻煩你加回來~」
「...」
沒關係,謹慎的你早料到客戶會有這樣的要求,所以有備份了當初的專案,並複製進行修改,所以有了 real_final_project。
好棒棒R,真是個計畫通呢(ง๑ •̀ω•́)ง!
沒想到,最後高估了客戶,於是有了 real_final_project_01 、 real_real_final_project_01 、fucking_real_final_project ...
搞了超多最終版本,你告訴自己為了摳摳忍了。
但這樣修改到最後,已經完全不知道最終版本是什麼的時候,體恤你的客戶說:「我找了另一個工程師來幫你摟(ゝ∀・)」
於是,你開始面臨到跟另一個工程師修改到同一個功能、同一個程式碼的困境了。
天哪,你一定覺得自己是不是做錯了什麼,為什麼要這樣對待你,大概這時候也已經心累了吧!

這時, Git 就很重要喇(撒花✧*。٩(ˊᗜˋ*)و✧*。)~~~(完全是神R)


Git 為什麼重要呢?

因為 Git 可以保留修改前修改中修改後的這些歷史紀錄,就可以隨時取得修改前修改中修改後的版本,就不用複製備用的檔案喇。

說到 Git ,就想到一個有趣的小故事。
Git 是 Linux 之父 "Linus Torvalds" 開發出來的,是為了管理更好的 Linux kernel 。
在 Git 出來之前 Linux kernel 是採用 BitKeeper 進行版本控管(因為是免費的分散式版本控制系統R,佛心企業)但在之後一個 Linux Kernel 的開發者嘗試去破解 BitKeeper 裡面的東西,結果惹怒了 BitKeeper,導致後來免費使用權被收回去惹。(有一點白目R哈哈哈)
但是 Linus 是誰R,沒關係啊自己來做一個,於是他在10天內開發出 Git~~~
真D是大神欸(✪ω✪)
Git 的命名來自英國俚語,意思大概是「混帳」,不知道大神是在自嘲還是...

好拉,回來

在進行版本控制系統介紹前先小科普一下:)

數據庫 (Repository) - 係指保存檔案或程式碼的地方,儲存內容的修改歷史記錄、和所有有關這個專案的內容。
數據庫還細分為

  • 遠端數據庫 (Remote) - 為了讓多人共享而建立的數據庫,通常是一個共用的伺服器。
  • 本地端數據庫 (Local ) - 為了方便自己使用的數據庫,通常是個人開發的電腦或機台。

什麼是版本控制系統?

版本控制系統 (Version Control System, VCS) 能記錄任何專案內各個修改過的版本,並讓使用者可以取得特定版本的系統。
且又分為 集中式版本控制系統 (Centralized Version Control System)分散式版本控制系統 (Decentralized Version Control System)。

集中式版本控制系統 - 係指版本都儲存在中央的伺服器,且需要有網際網路的情況下才能使用。就是說用自己的電腦時,需要先到中央伺服器取得最新版本,進行新增刪除修改後,再提交回去數據庫。

分散式版本控制系統 - 沒有「中央伺服器」,每個人的電腦上都有一個完整的數據庫,這樣工作的時候就不需要網際網路惹,因為自己的電腦上就有數據庫了。

Git 就是分散式版本控制系統 。(重點)

問題又來了,版本控制系統有這麼多,為什麼要選擇 Git 呢?
哼哼,這就是我為什麼在這裡寫學習文章喇!

我蒐集了以下 Git 的 優點

  1. 強力支援非線性開發模式 (分散式開發模式)
  2. 相容於現有作業系統
  3. 有效率的處理大型專案
  4. 歷史紀錄保護
  5. 以工具集為主的設計 (Toolkit-based design)
  6. 彈性的合併策略 (Pluggable merge strategies)
  7. 被動的垃圾回收機制
  8. Git 的設計架構讓開發者能碰到底層、進行更彈性的開發
  9. GitHub 是全世界最受歡迎的程式碼管理/分享網站
  10. 免費

大家都在用 Git ,現在全球市佔率為 37.98% ,多麽驚人的市佔率R,所以我要好好的學以致用惹!
【Git與GitHub】Git是什麼
--圖片來自Datanyze

/學習資料來源/

以下來源是我接下來每天學習必看的資源(免費),也分享給大家閱讀:)

30 天精通 Git 版本控管 作者: 黃保翕 ( Will 保哥 )
Git新手入門教學 – part 1 作者: LYNN
連猴子都能懂的Git入門指南| 貝格樂(Backlog)
為你自己學 作者: Git高見龍


上一篇
Day01【Git與GitHub】前言
下一篇
Day03【Git與GitHub】Git 環境安裝
系列文
Git與Github-30天學習歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

2
高見龍
iT邦研究生 4 級 ‧ 2019-09-05 10:55:02

加油 :)

是大神!!!
禮拜六要聽大神演講惹,好興奮R
/images/emoticon/emoticon32.gif

我要留言

立即登入留言