iT邦幫忙

2024 iThome 鐵人賽

DAY 5
1

Who the hell are you git

image alt

前言

Git 是一個分散式版本控制軟體,它的作用就是讓工程師在開發時可以共同參與一個專案,而且不需要在相同的網路系統下作業。所以當在沒有網路環境時,還是可以做分支與合併。而且其系統代碼庫能在多個電腦上備份,而多個位置的代碼庫再透過其他機制來達到同步。

Fun fact

  • 你知道Git現任管理者是日本人嗎?
  • 你知道美國曾經發生槍擊案件,就因為同事長期使用 git push -f 而導致的殺人案件嗎,所以想保住性命,請謹慎使用 -f 。 link text

麻瓜解釋

image alt
今天小銘在玩一款的遊戲,他的習慣是遇到重要時刻就會立刻存檔,這就是Git的基本概念,就是存檔沒錯。但Git的「存檔系統」可是非常酷炫,不僅僅是你自己能存檔,你還能和朋友一起協作儲存,每個人都能看到所有的變更紀錄,並且共享遊戲進度。現在想像一下,你們在玩多人模式,今天你休息沒上線,而你的朋友在推進度。當他們把進度存檔後,你也能共享他們的成就,是不是超棒?不過,這種存檔系統自由度很高,也因此可能出現一些麻煩,比如不小心覆蓋了朋友的存檔。所以呢,這個系統有點複雜,因為要避免這些意外,Git就有一套精密的存檔機制來保障大家的進度不會被亂改。

歷史

image alt
Git 的誕生與開源界的發展息息相關。它於 2005 年由 Linus Torvalds 創建 (同時也是 Linux 操作系統的創造者),當時 Linux 的開發社群使用一個叫做 BitKeeper 的分散式版本控制軟體。但於 2002 - 2005 年時,BitKeeper 的公司收回了給 Linux 開發者的免費授權,於是 Linus 決定要搞一個自己的替代品。

Linus 以十天的時間開發出了 Git,它不僅解決了 Linux 團隊面臨的問題,還提供了高速、高效的版本控制能力。從那時起,Git 很快就成為了各大專案中首選的版本控制工具。

後記

本身設計出身的我,其實已經養成了隨時存檔的習慣(很多悲慘經驗)。自從學了前端發現git這東西,真的是滿心歡喜,能滿足我一直存檔的癖好。所以剛踏入前端的朋友,此物是必學的,加油各位。

補充

BitKeeper 的競爭對手是 Git 和 Mercurial,它們都是分散式版本控制軟體,還有另外一種版本控制工具叫做集中式,比方說 CVS 或 SVN。其中最大差異是:

分散式(DDB,資料可存在多台主機上)

優點:

  • 允許開發者在本地儲存變更,並與其他人分享歷史變更
  • 可離線操作,無須中央伺服器
  • 資料可存在多台主機上,分散風險
  • 適合大型項目

缺點:

  • 對於新手來說,分散式操作較為複雜,例如合併與解衝突
  • 會占用本機儲存空間

集中式(CDB,資料只存在一台主機上)

優點:

  • 依賴於中央伺服器來儲存,可統一管理
  • 可以設置檔案的訪問權限,可嚴格管理(算優點嗎?)
  • 操作簡易,且較少的合併衝突
  • 適合小型項目

缺點:

  • 需要開發者與伺服器保持連線才能更新與提交
  • 如果中央伺服器出問題,工作就會停擺
  • 當專案規模增長時,SVN 效能可能會下降

參考

Git 的故事:這一次沒這麼好玩 | 軟體考古學家
Git - Wikipedia
Distributed version control - Wikipedia
Linus Torvalds - Wikipedia
Apache Subversion - Wikipedia
Subversion vs Git: The Pros and Cons | Hackbright Academy


上一篇
DAY4 真假!! JavaScript 可以讓"他"活起來
下一篇
DAY6 什麼?!個資都被 HTTP 給洩漏了
系列文
麻瓜的程式翻譯書《Who the hell are you XXX》30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

2
橘子
iT邦新手 4 級 ‧ 2024-09-19 09:58:11

錯字大師已經錯到我不知道是錯字還是錯位
「此勿是必學的」

不愧是抓錯字大師

華生 iT邦新手 5 級 ‧ 2024-09-19 17:37:48 檢舉

謝謝橘子認真且耐心的看完我的文章❤️

1
++
iT邦新手 5 級 ‧ 2024-09-19 09:59:04

我的存檔方式:command + ssssssssssssssssssssssss

華生 iT邦新手 5 級 ‧ 2024-09-19 17:40:31 檢舉

Agree

我要留言

立即登入留言