在現代軟體開發中,Git 是不可或缺的技能,無論是個人專案、團隊合作,甚至是 DevOps、自動化部署,Git 都扮演著關鍵角色。
本篇文章將介紹 Git 的核心概念 以及 開發者必須掌握的 Git 指令,讓你能夠更有效地管理程式碼、追蹤變更,並與團隊協作。
Git 是什麼?為什麼你應該學 Git?
Git 是 Linus Torvalds(Linux 之父)開發的分散式版本控制系統(DVCS),主要用來管理程式碼變更、協作開發,以及回溯歷史版本。
為什麼軟體工程師必須學 Git?
- 版本管理:避免手動存檔
project_v1、project_final、project_final_final這種混亂情況 - 回溯歷史:如果某個版本出錯,你可以快速回到過去版本
- 多人協作:支援多人開發,避免程式碼衝突
- 分支管理:同時進行不同功能開發,而不會影響主程式碼
Git 基本設定
初始化 Git 儲存庫
git init
這個指令會在專案資料夾內建立一個 .git 資料夾,作為 Git 儲存庫。
設定使用者資訊(首次使用 Git 時執行)
git config --global user.name "你的名字"
git config --global user.email "你的 Email"
這是必要的設定,Git 會將你的名字和 Email 記錄在每次提交(commit)中。
檢視 Git 設定
git config --list
Git 常用指令
1. 將檔案加入版本控制
新增檔案到 Git 暫存區(staging area):
git add filename
一次加入所有變更的檔案:
git add .
2. 提交變更
提交(commit)是 Git 中的核心概念,代表一次完整的變更紀錄。
git commit -m "這是提交訊息"
如果想一次加入所有變更並提交,可以用
git commit -am "快速提交"
但這只能用在已經被 Git 追蹤(tracked)的檔案。
3. 檢視變更
檢視目前有哪些變更:
git status
檢視詳細的變更內容:
git diff
檢視最近的提交歷史:
git log --oneline --graph --all
這會顯示簡潔的 Git 歷史,適合快速查看提交紀錄。
4. 撤銷變更
取消暫存區的變更(回到未 add 的狀態)
git reset HEAD filename
回復某個檔案到最後一次提交的狀態
git checkout -- filename
⚠️ 這將丟棄該檔案未提交的變更,請小心使用!
回復整個專案到上一次提交的狀態
git reset --hard HEAD
這會讓 所有未提交的變更消失,請謹慎操作!
5. 分支管理(Branch)
建立新分支(開發新功能時使用)
git branch new-feature
切換到某個分支
git checkout new-feature
建立並切換新分支(推薦方式)
git checkout -b new-feature
查看所有分支
git branch
刪除分支
git branch -d new-feature
⚠️ 若該分支還未合併,需強制刪除:
git branch -D new-feature
6. 合併分支(Merge)
切換回主分支:
git checkout main
合併 new-feature 分支的變更到 main 分支:
git merge new-feature
如果發生衝突(conflict),Git 會要求你手動解決,解決後再執行:
git add .
git commit -m "解決合併衝突"
7. 遠端儲存庫(GitHub/GitLab)
將專案與遠端 GitHub 連結
git remote add origin https://github.com/yourname/repository.git
查看目前的遠端儲存庫
git remote -v
推送到 GitHub(第一次推送時需加 -u 讓 Git 記住該分支)
git push -u origin main
往後只需執行
git push
從遠端抓取最新變更
git pull origin main
複製遠端儲存庫(克隆專案)
git clone https://github.com/yourname/repository.git
進階 Git 指令
1. 建立 Git 標籤(Tag)
在發佈版本時,常用 Git Tag 來標記特定版本
git tag v1.0
推送標籤到遠端:
git push origin v1.0
2. Rebase(變基)
將分支的變更「重新整理」成更乾淨的 Git 歷史
git rebase main
這在多人開發時特別有用,能讓 Git 紀錄更清晰。
結論
Git 是現代軟體開發必備的工具,無論是個人開發還是團隊合作,都需要掌握它的基礎操作。
必學 Git 指令快速回顧
- 初始化專案
git init - 查看狀態
git status - 加入變更
git add . - 提交變更
git commit -m "訊息" - 建立分支
git branch new-feature - 切換分支
git checkout new-feature - 合併分支
git merge new-feature - 推送到遠端
git push - 拉取最新程式碼
git pull
如果你還不熟 Git,現在就是最好的學習時機!
你最常用的 Git 指令是什麼?歡迎留言討論! ?
評論