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

隨著軟體開發逐漸複雜,我們在開發軟體常常會需要來管理程式碼的各個歷程。而版本控制系統就是為了應對這樣的需求而誕生的。Git 則是近年來最廣泛使用的分散式版本控制系統,它能有效地幫助團隊協作、追蹤歷史變更並提高管理的效率,這篇文章我們來介紹Git的使用。
為什麼要有Git
版本管理
在軟體開發中,一個專案往往會經歷多次修改和更新。透過 Git可以記錄每次變更,如同座擁一台時光機。例如,在開發新功能或修正錯誤時,如果出現意外問題,我們可以迅速回到上一個穩定的版本,防止因不可預期的問題而導致進度Delay。
團隊協作
在團隊開發中,Git就發揮它的專長啦。每個開發者可以在各自的分支上進行開發,不必擔心會干擾到其他人。當功能開發完成或修正錯誤後,可以將分支合併回主分支(如 main 或 master),保持專案的持續性和穩定性。
變更追蹤與審查
透過 Git 的提交紀錄,我們可以清楚地查看每個檔案的修改歷史,了解每次變更的原因和責任人。確保專案品質。當發現問題時,我們也能快速找出問題來源,進而有效解決。
GitHub 等平台的支援
Git 之所以受歡迎,還多虧各種平台和服務的支援,如 GitHub、GitLab、Bitbucket等。這些平台不僅提供了方便的遠端儲存和協作工具,還附帶許多額外功能,如 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:
git --version # 驗證 Git 版本 Windows
到此連結下載安裝程式,按照步驟安裝即可。
Linux
開啟 Terminal,依據系統版本執行以下命令:
sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install gitMac
開啟 Terminal,若尚未安裝 Git,可利用 Homebrew 安裝:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install git基本設置指令
就像你在新專案開始前,先告訴大家你是誰,以便在專案上的所有工作都能被標註上你的名字。
git config --global user.name "Your Name" # 設定使用者名稱
git config --global user.email "your_email@example.com" # 設定使用者郵箱初學者能快速搞懂的基本指令
git管理
1. git init — 初始化儲存庫
這就像開設一個專案資料夾,準備把所有項目文件記錄和管理起來,從頭開始一個新專案。
git init2. git clone — 下載遠端儲存庫
如果我加入這個專案團隊的話,現在我得用git clone把專案的資料拉到我的電腦上。
git clone <repository-url>暫存區與提交
1. git add –新增檔案到暫存區
當我新增了檔案,使用git add,才能把新增的檔案加入暫存區。
git add [檔案名]
git add .2. git commit –提交變更
幫我的專案開發到一個段落準備要提交到分支,使用git commit可以描述說明,例如新增的甚麼功能及修復哪個bug。
git commit -m "提交訊息"狀態查詢與日誌
1. git status — 查看工作區狀況
查看目前工作區目錄中哪些已經準備好提交,哪些還在變動狀態。

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

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

git branch2. git branch [分支名稱] — 建立分支
假設我有新功能想要開發,使用git branch <分支名稱>可以開新的分支,這樣就不會影響現有的專案。
git branch <分支名稱>3. git checkout [分支名稱] — 切換分支
切換現有分支:這就像你在專案進行中,從正在處理的子項目(如“主線開發”)切換到了另一個分支維護程式碼。
git checkout <分支名稱>4. git merge — 合併分支
當你完成了一個子項目,使用git merge可將子項目合併到主項目分支中,這樣主項目就包含了你完成子項目的內容。
git merge <分支名稱>遠端操作
1. git push origin [分支名稱] — 將分支推送到遠端儲存庫
將你本機整理好的分支內容上傳到雲端儲存庫,讓團隊可以看到你的最新成果。
git push origin <分支名稱>2. git pull origin [分支名稱] — 從遠端儲存庫拉取分支
從遠端下載分支,確保你擁有所有最新的改動和更新。
git pull origin <分支名稱>回退與重置
3. git reset –hard 回退版本
你正在準備修改某個功能,突然你覺得到最近的修改讓程式變得很難維護。使用git resrt就可以把修改的內容回復到修改前的狀態並捨棄紀錄。
git reset --hard <提交ID>4. git revert [提交ID]
這個指令與上面類似,保留了提交歷史
git revert <提交ID>結語:Git 真的超實用,起步一點都不難
如果你過去對 Git 感到些許畏懼,現在應該已經建立起信心了。雖然在實際操作過程中偶爾會遇到一些狀況(例如 conflict 合併衝突),但只要多加練習,你會發現 Git 是一個強大且實用的版本控制工具。建議開始將自己的專案納入 Git 的管理,切身體會其完善的版本追蹤與協作優勢。並邀請身邊的朋友一起學習、成長。



