前文提到,Git 是一種版控工具,而 GitHub、GitLab 是一個商業網站(本體是一個 Git 伺服器),以 Web 介面操作Git,故 Git 不等於 Git Hub 喲!
不過就操作與意象上,由下往上似乎更直覺:
這一個階段只是記錄檔案變動狀態。(類似貼標籤記錄)
有變動的檔案在使用 git add 指令時才會進入此區
使用 git commit 指令將暫存區的檔案 commit,紀錄於 Local Repo
直到使用 git push 指令才推上遠端儲存庫(如 Git Hub / GitLab)
commit 是以快照的方式記錄目錄文件的變化,而非每次都複製所有檔案,故可以快速切換讓專案回到各個 commit 階段,有如坐時光機一樣,秒切換到各個版本之間做彈性的應用。
分支可應用在於多人開發 / 新功能開發(區分 正式發佈 / 開發階段 ...等),在不影響主線的狀況下開發,直到功能到一個段落之後再合併至主線。
主線通常會被加以保護,自分支完成階段開發後,提出合併回主線的申請 PR-Pull Request( GitHub 中的 PR 等同於Git Lab中的 MR - Merge Request)
建立分支的動作其實只是「在目前的 commit 貼上一張有名字的貼紙」,再進行下一次的 commit 之前,其實並沒有任何變化。
在學 Git 各種進階指令前,最最最基本功 Git clone / init / add / commit / pull / push / merge / rebase 及 branch 的切換先練習至上手,再去應用進階的後續指令吧!
還沒有實際使用過 Git 的人,只看上述的觀念篇大概也無法理解到底在公啥毀,下兩篇將列舉實際應用狀況,會更明確些。
回想自己剛學 Git時一陣茫,好像有聽懂、卻又感覺有點抽象,直到真正進行多人協作時才真的懂了 Git 在做什麼,也才發現在開發上是多麼重要的應用!即使不是多人協作,使用 Git 管理自己的專案也是相當必要的。
好啦~Git的基礎觀念篇就這樣,等實作中踩過幾次雷就會懂囉。
參考資料:
個人 Blog: https://eudora.cc/