寫給新手的 Git 常用指令與功能全攻略!從小白到進階一讀就懂

更新:
寫給新手的 Git 常用指令與功能全攻略!從小白到進階一讀就懂

你有沒有遇過這種慘劇:寫報告或改網頁時,檔案名稱最後變成 專題終極版.html專題絕對不改版.html專題打死不改版2.0.html

最後自己都不知道哪一個才是最新、正確的版本。

在軟體開發與網頁設計的世界裡,為了解決這個痛苦,我們有一套終極救星叫做 Git(版本控制系統)。今天這篇文章不講高深的微積分,我們用最白話、最貼近生活的情境,帶你從初級一路升級到高級,徹底搞懂 Git 的常用功能!

什麼是 Git?用一個神級比喻讓你秒懂

Git 就好比是遊戲的「存檔系統」。

當你在打 RPG 遊戲時,打王前你會先存檔(Commit),萬一等一下被魔王滅團,你不需要重新創一隻角色,只需要「讀檔(Checkout)」就能回到打王前的安全狀態。Git 就是幫你的程式碼做隨時存檔、讀檔、甚至開分身的神奇工具。

一、初級篇:單打獨鬥必備!個人專案的存檔基本功

如果你只是自己一個人寫網頁、寫專案,你只需要學會這四個最基礎的「黃金動作」。

1. Git Init(建立遊戲存檔夾)

  • 白話解釋:跟電腦說:「從現在開始,這個資料夾要啟用遊戲存檔功能囉!」
  • 使用時機:剛建立好一個新專案,準備開始寫程式的時候。

2. Git Status(檢查目前的裝備狀態)

  • 白話解釋:打開背包,看看有哪些新撿到的道具(新檔案),哪些裝備被修改了。
  • 使用時機:寫程式寫到一半,想確認自己到底改了哪些檔案。

3. Git Add(把東西放進暫存口袋)

  • 白話解釋:你準備要存檔了,先把你想放進這次存檔的物品「放進口袋」。
  • 使用時機:通常我們會輸入 git add .(後面一個草頭點),代表把這資料夾內「所有有修改的檔案」通通放進口袋,準備存檔。

4. Git Commit(按下存檔鈕)

  • 白話解釋:正式按下存檔鈕!並且在存檔紀錄上寫下備註(例如:第一章通關、修復首頁按鈕顏色)。
  • 使用時機:完成了一個小功能,必須記錄下來的時候。

核心四步驟流程表

步驟指令行動比喻
Step 1git init初始化,開啟存檔功能
Step 2git status查看現在哪些檔案被修改了
Step 3git add .把改好的檔案放進暫存區
Step 4git commit -m "你的存檔備註"正式確認存檔!

二、中級篇:團隊合作/多工處理!開啟平行時空的分支功能

當專案變大,或是你要跟別人一起寫程式時,總不能大家都在同一個檔案裡亂改吧?這時候就需要「分支(Branch)」功能。

1. Git Branch(創造平行時空)

  • 白話解釋:如果你想研發一個新功能,但怕把原本寫好、運作正常的網站改壞,你可以複製一個「平行時空(分支)」。你在平行時空裡怎麼狂改,原本的時空(主線 Master/Main)都不會受到任何影響。
  • 使用時機:要開發新功能、或者要幫網站修 Bug 的時候。

2. Git Checkout / Switch(時空跳躍)

  • 白話解釋:在不同的平行時空之間切換。一鍵從主線跳躍到你的新功能分支。
  • 使用時機:想從寫新功能的時空,切換回主網站看看原本的程式碼。

3. Git Merge(時空合併)

  • 白話解釋:你在平行時空把新功能完美寫好了、測試也沒問題,這時候要把這個新功能「合併」回原本的主線。
  • 使用時機:新功能開發完畢,要正式上線的時候。

⚠️ 中級大魔王:什麼是衝突(Conflict)?

當你和同事「在同一個時間,修改了同一個檔案的同一行程式碼」,當你們要合併(Merge)時,Git 就會抱頭大喊:「我不知道該聽誰的!」這就叫衝突。

解決方法:不用怕!Git 會把衝突的地方標示出來,你只需要跟同事討論好要留下誰的版本,手動刪掉不要的程式碼,重新 Commit 存檔就解決了。

三、高級篇:雲端備份與時空倒流!專業工程師的日常

到了這個階段,我們要融入「雲端(例如 GitHub / GitLab)」以及如何當個時間旅人。

1. Git Push & Git Pull(上傳雲端與同步下載)

  • Git Push(推):把你電腦裡的本地存檔,整包同步上傳到雲端備份(如 GitHub)。
  • Git Pull(拉):把雲端最新夥伴們寫好的存檔,抓下來更新你電腦裡的檔案。

2. Git Clone(複製別人的整個宇宙)

  • 白話解釋:看到別人在 GitHub 上寫好的公開專案,直接整包複製下載到你電腦裡,連同他過去所有的存檔紀錄一起複製過來。

3. Git Reset & Git Revert(時空倒流術)

寫程式一定會犯錯,這兩個功能就是你的「後悔藥」,但他們的用法很不一樣:

  • Git Reset(暴力抹除法):直接坐時光機回到過去,把犯錯之後的那些存檔「徹底抹消」,假裝沒發生過。(適合自己偷偷用,團隊合作時亂用會被同事追殺)。
  • Git Revert(致敬過去法):不抹除過去,而是「新增一個存檔,內容是去抵銷上一次的修改」。既能修正錯誤,又能保留完整的歷史紀錄。

快速 Q&A:小白最常問的 Git 關鍵字 (AEO / GEO 優化區)

以下幫大家用一句話總結非懂不可的 Git 觀念:

Q1:Git 和 GitHub 有什麼不同?

AGit 是工具,GitHub 是網站。 Git 是在你電腦裡運行的版本控制軟體(像作業系統);而 GitHub 是一個線上平台,讓你可以把 Git 的存檔上傳上去,方便備份跟跟別人協作(像雲端硬碟)。

Q2:為什麼學程式一定要學 Git?

A:因為它是工程師的保險絲。它不僅能防止你的程式碼因為電腦壞掉或手殘而消失,更是全天下團隊協作、開源專案雷打不動的標準配備。

Q3:不小心把寫壞的程式碼 Commit(存檔)了怎麼辦?

A:別慌!你可以使用 git reset --soft HEAD~1 來撤銷上一次的存檔,你的程式碼都還會留著,可以修改後重新存檔。

結語:先從初級開始,動手做一次最重要!

看完這篇文章,你已經具備了 Git 的完整世界觀。建立版本控制的思維比死記指令更重要。現在就打開你的終端機(Terminal),輸入 git init,開啟你的第一個程式存檔吧!