你有沒有遇過這樣的情況:
version1.docx
、version2_final.docx
、version3_final_final.docx
🤯這些問題都可以透過 Git 版本控制 來解決!它可以:
✅ 讓我們清楚記錄每次的修改歷史(git commit )
✅ 讓多人同時編輯專案,並整合不同的修改
✅ 在 GitHub 這類遠端平台上存放程式碼,讓團隊能 協作開發
Github 平台
學習 Git 之前,先來了解幾個重要的概念:
1️⃣ Working Directory(工作目錄):你電腦上的專案資料夾。可參考我之前的文章解釋 directory 的概念 電腦科學新手村 | CMD 應用 GUI CLI | 位元組| Linux
2️⃣ Staging Area(暫存區):Git 追蹤的變更,還沒正式提交
3️⃣ Local Repository(本地儲存庫):存放你的歷史版本,只在你的電腦上
4️⃣ Remote Repository(遠端儲存庫):如 GitHub,存放專案的中央版本,讓多人協作
🚀 學習 Git 的第一步:安裝 Git 👉 下載 Git,安裝後開啟 Git Bash(或 Terminal)。第二步,註冊 Github 帳號。
一些小撇步:在Git Bash 中 Ctrl+ C 是停止的意思,如果要使用複製貼上要用滑鼠右鍵哦。
(1) Working Directory(工作目錄)
↓ git add
(2) Staging Area(暫存區)
↓ git commit
(3) Local Repository(本地儲存庫)
↓ git push
(4) Remote Repository(遠端儲存庫,例如 GitHub)
工作目錄就是你電腦上的專案資料夾,裡面包含了你的程式碼和專案文件。這裡的檔案是未受 Git 控制的,除非你手動讓 Git 追蹤它們。
mkdir my_project
cd my_project
git init
.git
隱藏資料夾,Git 開始監控這個專案。touch main.py現在
echo "print('Hello, world')" > main.py
main.py
存在於 工作目錄,但 Git 還沒有追蹤它。git status會看到:
On branch master這代表
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
main.py
main.py
還沒進入 Git 控制。但已經有檔案在裡面了!
暫存區 是 Git 用來存放「即將提交的變更」的地方。當你執行 git add
,檔案會從 工作目錄 進入 暫存區,但還沒有真正存入版本庫。
git add
:git add main.py
git status
會顯示:Changes to be committed:現在
(use "git restore --staged <file>..." to unstage)
new file: main.py
main.py
已經在暫存區,但還沒有正式存入 Git 版本庫。main.py
,可以看到:git status
會顯示:Changes to be committed:這代表 Git 追蹤了之前的版本,但新的變更還沒被 Git 記錄。
new file: main.py
Changes not staged for commit:
modified: main.py
當你執行 git commit
,檔案就會從 暫存區 進入 本地儲存庫,這是一個獨立的 Git 版本控制空間,所有的 commit 都儲存在 .git
資料夾內。
git commit -m "Initial commit: add main.py"
git status
:On branch master這表示:
nothing to commit, working tree clean
git log --oneline會顯示:
4c52892 (HEAD -> master) add main.py //前面是隨機序號,你的會跟我的不一樣現在
main.py
的版本已經安全儲存在 本地儲存庫。我會另外再紀錄一篇,如果想要回到上個版本,該如何處理。
本地儲存庫的版本只存在於你的電腦上。如果你想與其他開發者協作,需要將程式碼推送到遠端儲存庫(如 GitHub)。
git remote add origin https://github.com/你的GitHub帳號/my_project.git這樣你的專案就連結到 GitHub 上的 遠端儲存庫。
留意, git remote add origin
只是讓你的本地 Git 知道遠端 Repository 的網址,但它不會自動幫你在 GitHub 上建立一個新的 Repo。
換句話說,git remote add origin
只是「告訴 Git 這個專案的遠端儲存庫在哪裡」,但如果 GitHub 上沒有 my_project
這個儲存庫,你的 git push
會失敗,因為遠端找不到這個 Repo。所以要手動去 GitHub 建一個。
+
> New Repositorymy_project
git push -u origin master這會把你的 commit 推送到 GitHub,讓其他人可以存取你的程式碼。
git remote -v會顯示:
origin https://github.com/你的GitHub帳號/my_project.git (fetch)
origin https://github.com/你的GitHub帳號/my_project.git (push)
git pull origin master
這樣你就能獲得最新的程式碼。現在,我們來動手操作,創建一個 Git 網頁專案!🎯
首先,在你的專案資料夾內,執行:
git init
這會建立 .git
目錄,讓 Git 追蹤你的檔案變更。
git status
這會告訴你目前哪些檔案有變更,哪些還沒被 Git 追蹤。
建立一個 index.html
:
<!DOCTYPE html>
<html>
<head>
<title>我的 Git 練習頁面</title>
</head>
<body>
<h1>Hello, Git!</h1>
</body>
</html>
然後執行:
git add index.html
這會把 index.html
加入 暫存區。
git commit -m "Initial commit: add index.html"
這會正式將變更存入 本地儲存庫。
git remote add origin https://github.com/你的GitHub帳號/你的Repo名稱.git
git push -u origin master
這會把你的專案推送到 GitHub,讓你的程式碼在遠端可存取。
因為我中間有修改檔案,忘記git add 到暫存區,Commit 沒成功,所以再複習一次
git add index.html # 先把檔案加入暫存區
git commit -m "add learn in index.html" # 再提交變更
git push origin master # 推送到遠端
git log
想看看專案的歷史紀錄?執行:
git log
如果想要更簡潔的顯示方式:
git log --oneline
git reset
& git revert
如果不小心提交錯誤:
git reset --hard HEAD~1 # 回到上一次 commit,丟棄修改
git revert HEAD # 反轉最近一次的 commit,但保留歷史紀錄
git branch
& git switch
git branch new-feature # 建立新分支
git switch new-feature # 切換到新分支
當兩個分支有不同的修改時,合併可能會產生衝突:
git merge new-feature # 合併 new-feature 分支
如果 Git 提示有 merge conflict,手動修改有衝突的檔案,然後:
git add .
git commit -m "Resolve merge conflict"
git push
& git pull
當你完成修改後,可以推送到遠端:
git push origin master
如果團隊有新版本,需要更新到你的本地環境:
git pull origin master
git clone
如果你要從 GitHub 下載一個專案:
git clone https://github.com/某人/某專案.git
GitHub 提供了一個免費的靜態網站部署服務,讓你可以用 GitHub Pages 發佈你的 HTML 頁面!
index.html
git add index.html
git commit -m "Add index.html"
git push origin master
Branch
為 master
(或 main
)https://你的GitHub帳號.github.io/你的Repo名稱/
🎉 終於成功啦,第一個 GitHub Pages 網站(雖然有點陽春,完全沒有 CSS)! 🚀
有些檔案(例如 .log
、node_modules
)不需要放進 Git,可以用 .gitignore
忽略它們:通常這些檔案是記錄錯誤的日誌
echo "node_modules/" >> .gitignore
echo "*.log" >> .gitignore
git add .gitignore
git commit -m "Add gitignore"
git push origin master
Git 是一個強大的工具,學會它能讓你的開發流程更順暢、團隊協作更有條理。這篇文章提供了 基礎指令 + 實際練習範例,讓你可以一步步上手。
如果你剛開始學習 Git,不用擔心記不起來這麼多指令,先動手試試看! 🚀
之後你可以慢慢學會 git rebase
、git cherry-pick
等更進階的功能。
💡 下一步建議:
git branch
)git add
, git commit
)git merge
) 並解決衝突你有什麼 Git 相關的問題或心得嗎?歡迎留言交流!🔥😃
記得要先去專案目錄,不然他會找不到 git 。