【無厘頭軟工小教室】Git 知識大解密-掌握版本控制的秘密

隨著軟體開發逐漸複雜,我們在開發軟體常常會需要來管理程式碼的各個歷程。而版本控制系統就是為了應對這樣的需求而誕生的。Git 則是近年來最廣泛使用的分散式版本控制系統,它能有效地幫助團隊協作、追蹤歷史變更並提高管理的效率,這篇文章我們來介紹Git的使用。

為什麼要有Git

版本管理

在軟體開發中,一個專案往往會經歷多次修改和更新。透過 Git可以記錄每次變更,如同座擁一台時光機。例如,在開發新功能或修正錯誤時,如果出現意外問題,我們可以迅速回到上一個穩定的版本,防止因不可預期的問題而導致進度Delay。

團隊協作

在團隊開發中,Git就發揮它的專長啦。每個開發者可以在各自的分支上進行開發,不必擔心會干擾到其他人。當功能開發完成或修正錯誤後,可以將分支合併回主分支(如 main 或 master),保持專案的持續性和穩定性。

變更追蹤與審查

透過 Git 的提交紀錄,我們可以清楚地查看每個檔案的修改歷史,了解每次變更的原因和責任人。確保專案品質。當發現問題時,我們也能快速找出問題來源,進而有效解決。

GitHub 等平台的支援

Git 之所以受歡迎,還多虧各種平台和服務的支援,如 GitHubGitLabBitbucket等。這些平台不僅提供了方便的遠端儲存和協作工具,還附帶許多額外功能,如 issue 追蹤、pull request 、CI/CD 整合等。這些平台大大提升了開發效率和專案管水平。除了這些功能,這些平台還提供了豐富的社群資源,讓開發者能互相學習和分享經驗。

Git使用情境及指令

工作區(Working Directory)

工作區(Working Directory)指的是專案的目錄,裡面包含你正在編輯的所有檔案。在這個階段,你可以自由地新增、修改或刪除檔案。這些變更暫時只保存在工作區內,還未正式納入版本控制系統。

暫存區(Staging Area / Index)

暫存區是 Git 的一個中介層,在提交(commit)之前,需要先將變更新增到暫存區。這樣的設計讓你能夠靈活地選擇只提交部分變更,而不是提交整個工作區的內容。

本地儲存庫(Local Repository)

本地儲存庫存有你的所有提交歷史和分支資訊。當執行 git commit 指令時,變更會從暫存區提交至本地儲存庫中,並永久記錄下來

遠端儲存庫(Remote Repository)

遠端儲存庫通常是在伺服器上的儲存庫,如 GitHub、GitLab 或 Bitbucket。遠端儲存庫允許多個開發者之間協作。你可以將本地儲存庫的變更推送(push)至遠端儲存庫,或從遠端拉取(pull)最新的變更。

環境佈署

在安裝 Git 前,可執行以下指令來判斷是否有安裝 Git:

Bash
git --version  # 驗證 Git 版本  

Windows

此連結下載安裝程式,按照步驟安裝即可。

Linux

開啟 Terminal,依據系統版本執行以下命令:

Bash
sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git

Mac

開啟 Terminal,若尚未安裝 Git,可利用 Homebrew 安裝:

Bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install git

基本設置指令

就像你在新專案開始前,先告訴大家你是誰,以便在專案上的所有工作都能被標註上你的名字。

Bash
git config --global user.name "Your Name" # 設定使用者名稱
git config --global user.email "your_email@example.com" # 設定使用者郵箱

初學者能快速搞懂的基本指令

git管理

1. git init — 初始化儲存庫

這就像開設一個專案資料夾,準備把所有項目文件記錄和管理起來,從頭開始一個新專案。

Bash
git init

2. git clone — 下載遠端儲存庫

如果我加入這個專案團隊的話,現在我得用git clone把專案的資料拉到我的電腦上。

Bash
git clone <repository-url>

暫存區與提交

1. git add –新增檔案到暫存區

當我新增了檔案,使用git add,才能把新增的檔案加入暫存區。

Bash
git add [檔案名]
git add .

2. git commit –提交變更

幫我的專案開發到一個段落準備要提交到分支,使用git commit可以描述說明,例如新增的甚麼功能及修復哪個bug。

Bash
git commit -m "提交訊息"

狀態查詢與日誌

1. git status — 查看工作區狀況

查看目前工作區目錄中哪些已經準備好提交,哪些還在變動狀態。

Bash
git status

2. git log — 查看提交歷史

想要看看過去幾天甚至幾個月你都做了哪些工作,使用git log就可以查詢

Bash
git log

分支管理

1. git branch –列出分支

想像你在進行一個專案,同時開發新功能及修復bug而開一些分支,使用git branch就可以查看你手上的所有分支列表。

Bash
git branch

2. git branch [分支名稱] — 建立分支

假設我有新功能想要開發,使用git branch <分支名稱>可以開新的分支,這樣就不會影響現有的專案。

Bash
git branch <分支名>

3. git checkout [分支名稱] — 切換分支

切換現有分支:這就像你在專案進行中,從正在處理的子項目(如“主線開發”)切換到了另一個分支維護程式碼。

Bash
git checkout <分支名>

4. git merge — 合併分支

當你完成了一個子項目,使用git merge可將子項目合併到主項目分支中,這樣主項目就包含了你完成子項目的內容。

Bash
git merge <分支名>

遠端操作

1. git push origin [分支名稱] — 將分支推送到遠端儲存庫

將你本機整理好的分支內容上傳到雲端儲存庫,讓團隊可以看到你的最新成果。

Bash
git push origin <分支名>

2. git pull origin [分支名稱] — 從遠端儲存庫拉取分支

從遠端下載分支,確保你擁有所有最新的改動和更新。

Bash
git pull origin <分支名>

回退與重置

3. git reset –hard 回退版本

你正在準備修改某個功能,突然你覺得到最近的修改讓程式變得很難維護。使用git resrt就可以把修改的內容回復到修改前的狀態並捨棄紀錄。

Bash
git reset --hard <提交ID>

4. git revert [提交ID]

這個指令與上面類似,保留了提交歷史

Bash
git revert <提交ID>

結語:Git 真的超實用,起步一點都不難

如果你過去對 Git 感到些許畏懼,現在應該已經建立起信心了。雖然在實際操作過程中偶爾會遇到一些狀況(例如 conflict 合併衝突),但只要多加練習,你會發現 Git 是一個強大且實用的版本控制工具。建議開始將自己的專案納入 Git 的管理,切身體會其完善的版本追蹤與協作優勢。並邀請身邊的朋友一起學習、成長。

分享這篇文章

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *