Git 入門:版本控制與 Git 是什麼?【你的程式時光機】

更新 發佈閱讀 5 分鐘

Git、Github、Gitlab...... 相信許多程式開發者或多或少都有聽過這些名字,但對於他們是什麼,具體能做什麼,可能不太理解,老實說我以前也是僅會使用而已,並不太懂其中的原理。

直到某天睡醒,我突然很好奇 git 的運作方式,因此決定花些時間來好好來搞懂關於 git 的詳細用法!! 為了強迫自己吸收知識,我會把學習到的知識內容整理成比較趣味的文章~

如果你也想多加了解 git,歡迎繼續往下閱讀~


版本控制系統 Version Control System

正式介紹 git 前,一定要先提到的就是所謂的「版本控制系統」,版本控制系統用來追蹤檔案的變更,讓使用者可以清楚每個階段檔案都變動了些什麼,也可以自由的切換到想回到的版本。如果覺得概念不好理解,可以想像成是古早單機遊戲的存檔點,每玩到一個階段就存一個檔,可以自由地回到存檔點,也不用擔心之後玩一玩發生意外一切都要重頭來。

版控系統又分為集中式與分散式:

集中式版本控制系統

集中式版控系統會將歷史資料儲存在一個中央伺服器,所有想要取得檔案歷史紀錄的人都需要連上,這也代表,如果沒網路,就沒辦法進行版本控制,更危險的是!! 如果這個伺服器壞掉,歷史資料就會遺失。

集中式版本控制系統

集中式版本控制系統

分散式版本控制系統

理解集中式後,分散式的概念應該也很好猜,就是每個參與的開發者都有完整的歷史資料,如果我的資料遺失了,可以從其他的開發者手中取回歷史資料,而且即使在沒有網路的狀態下 git 一樣能在自己的電腦不斷保存歷史,這也是與集中式版控系統最大的差別之一。

分散式版本控制系統

分散式版本控制系統


Git 是甚麼

所以 git 究竟是什麼呢? Git 是在你電腦裡幫你紀錄檔案變化的一種分散式版本控制系統,而 Github 與 Gitlab 是基於 Git 的網頁平台。

在其他文章中看到的「本地儲存庫 local repository」指的就是 Git 在你電腦裡管理的儲存庫,而 Github 與 Gitlab 的儲存庫通常會稱作「遠端儲存庫 remote repository」,所以其實他們是不一樣的東西唷! 千萬不要搞混了~

Git 可以幫我們紀錄檔案每次的變化,也可以隨時回到過去的版本。

聽起來好像很厲害,但什麼時候會需要用到?

舉個🌰

我有個朋友寫了一個功能完整的程式,完成後他又想要在裡面新增內容,為了避免改壞原本的程式碼,不懂版本控制工具是什麼的我朋友,採取了(他想像中)比較安全的做法,就是複製一份一樣的檔案保存,接著再修改新的檔案。後來他成功改好了程式碼,他的第一份程式碼叫做 file1,而新增一點內容的第二份程式碼被他稱作 file1_v2,有時候他也會把這樣的檔案取作 file2 之類的。 接著三個月過去了,我朋友想要把寫好的程式拿出來用,可是他卻忘記了這兩份檔案的差別是什麼,怎麼辦啦QQ

「要是有個好東西可以幫我記錄我修改的內容,我就不需要複製那麼多檔案、不用擔心改壞內容、也不會搞不清楚他們到底差在哪裡!! 如果能讓我隨意地依照心情切回不同的版本就更好了>_<」

是的,這就是 git 的作用,恭喜你成功掌握了 git 的入門的用法了。


總結

透過上述我朋友的小故事,相信大家已經稍微理解 git 的使用情境了,讓我們快速整理一下這篇文章的重點:

  1. 版控系統用來紀錄檔案的變更,分為集中式與分散式。
  2. git 是一種分散式版控系統,而 github 與 gitlab 是基於 git 的網路平台。
  3. git 會記錄檔案的變更資料,誰在什麼時間改了那些內容通通都會記住。
  4. git 也可以讓你快速且自由的切換到儲存過的任何時間點。

其實 git 還有很多厲害的花招,但是對於剛開始接觸的人來說,第一篇先簡單了解概念就好了~ 在後續的文章,我也會慢慢提到更進階的用法!

下一篇文章會帶大家一起安裝 Git,並實際開始操作,打造自己的程式時光機!!

留言
avatar-img
Elaine 粼粼的林林總總
91會員
44內容數
不定期地分享程式/旅遊/學習/閱讀或各式各樣的文章,如果對我的分享有興趣,歡迎來找我玩~
你可能也想看
Thumbnail
這篇文章將會講解 Git 專案上傳 GitHub 的流程。
Thumbnail
這篇文章將會講解 Git 專案上傳 GitHub 的流程。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
有關 git add, git commit, git push
Thumbnail
有關 git add, git commit, git push
Thumbnail
這篇文章將會介紹分支的合併,以及它常見的分類。
Thumbnail
這篇文章將會介紹分支的合併,以及它常見的分類。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
最近在找資料的時候,偶然發現了兩個有趣的 git 指令:git commit --fixup 和 git rebase -i <sha> --autosquash。 研究了下發現對於像我這種每次 commit 都要斤斤計較,盡可能完美的人來說非常好用,因此寫一篇筆記記錄一下用法。
Thumbnail
最近在找資料的時候,偶然發現了兩個有趣的 git 指令:git commit --fixup 和 git rebase -i <sha> --autosquash。 研究了下發現對於像我這種每次 commit 都要斤斤計較,盡可能完美的人來說非常好用,因此寫一篇筆記記錄一下用法。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News