git 版本管控

Shin Yulin
4 min readAug 1, 2021

最近開始了 AppWorksSchool 的 RemoteLearning 的遠端課程,將基本功好好的練起來,這次就來再度學習 git 版本管控吧!

什麼是Git? 跟GitHub、GitLab 有什麼差別?

Git 是一個在工程師世界裡面稱 “版本管控”的一種系統。由Linux之父 Linus Torvalds 所創作出來的。

剛進入工程師世界的我,一開始對於 git、GitHub、GitLab的名詞搞得很混亂,但在深入了解過後,發現其實很簡單的,git 為一個版本管控系統, 而 GitHub、GitLab 則是一個提供遠端儲存空間(Remote Repostiory),讓我們可以進行存放自己的檔案版本的地方,當然如果我們沒有要將檔案存放在網路上,也可以只單純在我們的電腦上進行git的版本管控。

為什麼我們需要git版本管控?

在做設計案的時候,我們很常遇到一件事情,就是客戶不斷的改稿,導致於我們專案資料夾內往往會有一下情形:

沒錯,永遠不間斷的Final檔案,但在工程師的世界裡面也會遇到相同的問題,不管是在跟人合作或是自己進行一項專案的時候,

專案的版本一多,分成好幾個檔案進行儲存,就不會是一個好辦法。無法很有效地看出每個版本之間的差距(特別是工程師,往往都是一大串英文所組成,在視覺上更不可能一看就知道差別),因此就有了所謂的 版本管控(Version Control)

Git的原理

簡單來說,我們先將資料夾進行標記,來紀錄在這個資料夾內的變動,確任變動後,寫下本次變動版本的註解,之後就可以將檔案處存到本地或是遠端資料庫囉。

四大區域

Workspace 工作區

  • 進行版本的比對與狀態確認 — Untracked / Tracked / Unmodified / Modified

Staging Area 暫存區

  • 處存要更新上傳的版本 填寫版本的描述

Local Repository 本地端儲存庫

  • 咱們資料版本在電腦上的處存地

Remote Repository 遠端儲存庫

  • GitLab 、 GitHub 就是屬於遠端儲存庫

常用方法

status

用來查看目前專案資料夾內的狀況:

git status
  • Untracked / 尚紀錄過的檔案
  • Tracked / 已紀錄過的的檔案
  • Unmodified / 無修修改的檔案
  • Modified / 修改過的檔案

add

透過 add 將新增、修改過的檔案存入 Staging Area

git add [檔案名稱] //新增特定檔案
git add . //新增所有檔案
git add * //新增所有檔案

commit

填寫版本的更新資訊、並更新至 Local Repository

git commit // 進入vim  填寫commit訊息
git commit -m "輸入Commit訊息"

push

將 Local Repo 更新至 Remote Repo

git push //更新至原本設定的遠端Repo
git push [特定遠端repo的URL]

fetch

確認Remote Repo內容,將內容建立一份在Local Repo

git fetch

merge

將 Local Repo的內容合併到 WorkSpace

git merge

pull

進行 fetch + merge

git pull

log

查詢版本更動的紀錄

git log

diff

顯示檔案在 Workspace 與 Staging Area 差異

git diff

以上就是 Git 的初步基本知識哩,之後有空的話在來整裡一些關於分支Branch、跟一些實作Git的文章吧:D

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Shin Yulin
Shin Yulin

Written by Shin Yulin

一個在前往 iOS 工程世界的視覺工作者

No responses yet

Write a response