Git 入門教學 #04 基礎測驗
測試你對 GitHub 與 push/pull 的基本理解,共 5 題。
1. 執行 git remote add origin https://github.com/user/repo.git 這個指令的用途是什麼?
2. 首次推送程式碼到 GitHub 時,應該使用哪個指令?
3. git pull 指令的作用是什麼?
4. 想要複製 GitHub 上的專案到本地電腦,應該使用哪個指令?
5. 使用 git clone 和下載 ZIP 檔案有什麼主要差異?
前言
在前三篇文章中,我們學會了在本地電腦上使用 Git 追蹤檔案變更。但真正的威力在於遠端協作——把程式碼放到雲端,讓團隊成員都能存取,也為自己的程式碼建立備份。
本篇將介紹如何使用 GitHub 作為遠端儲存庫,學會 push(推送)和 pull(拉取)操作。
GitHub 是什麼?
GitHub 是全球最大的程式碼託管平台,提供免費的 Git 遠端儲存庫服務。你可以把它想像成「程式碼的雲端硬碟」,但功能更強大:
- 儲存你的 Git 儲存庫
- 與他人協作開發
- 追蹤 issues 和專案進度
- 展示你的作品集
註冊 GitHub 帳號
- 前往 github.com
- 點擊「Sign up」
- 依照指示完成註冊(需要 email 驗證)
註冊完成後,你就有了一個可以存放程式碼的雲端空間。
在 GitHub 建立儲存庫
步驟說明
- 登入 GitHub 後,點擊右上角的「+」,選擇「New repository」
- 填寫儲存庫資訊:
- Repository name:專案名稱(例如:
my-first-project) - Description:簡短描述(選填)
- Public / Private:公開或私人
- Repository name:專案名稱(例如:
- 不要勾選「Add a README file」(我們已經有本地儲存庫了)
- 點擊「Create repository」
建立完成後,GitHub 會顯示一組指令,教你如何連結本地儲存庫。
git remote:連結遠端儲存庫
概念說明
git remote 用來管理遠端儲存庫的連結。最常見的遠端名稱是 origin,代表「原始來源」。
查看目前的遠端連結
git remote -v
如果還沒設定,這個指令不會顯示任何東西。
新增遠端連結
git remote add origin https://github.com/你的帳號/你的儲存庫.git
Code language: JavaScript (javascript)這行指令的意思是:
git remote add:新增遠端連結origin:遠端的名稱(習慣上用 origin)- 後面的 URL:GitHub 儲存庫的位址
驗證連結成功
git remote -v
應該會看到:
origin https://github.com/你的帳號/你的儲存庫.git (fetch)
origin https://github.com/你的帳號/你的儲存庫.git (push)
Code language: JavaScript (javascript)git push:推送到遠端
首次推送
git push -u origin main
參數說明:
-u:設定上游(upstream)追蹤關係,之後只要打git push就好origin:遠端名稱main:要推送的分支
首次執行時,系統會要求你登入 GitHub(輸入帳號密碼或使用 token)。
後續推送
設定好上游追蹤後,之後只需要:
git push
Git 會自動推送到設定好的遠端分支。
推送的時機
養成好習慣:每次完成一個功能或修復一個 bug,commit 之後就 push:
git add .
git commit -m "完成登入功能"
git push
Code language: JavaScript (javascript)git pull:拉取遠端更新
為什麼需要 pull?
當你在另一台電腦工作,或團隊成員推送了新的變更,你需要把遠端的更新拉回本地。
基本用法
git pull
這個指令會:
- 從遠端下載最新的變更
- 自動合併到你的本地分支
建議的工作流程
每次開始工作前,先拉取最新版本:
git pull # 先拉取最新
# 進行你的修改...
git add .
git commit -m "你的變更"
git push # 推送你的變更
Code language: PHP (php)git clone:複製現有專案
使用場景
- 第一次在新電腦上取得專案
- 複製別人的開源專案來學習或貢獻
基本用法
git clone https://github.com/帳號/儲存庫.git
Code language: PHP (php)這會在當前目錄建立一個新資料夾,包含完整的專案和 Git 歷史。
指定資料夾名稱
git clone https://github.com/帳號/儲存庫.git 我的資料夾
Code language: PHP (php)clone vs download ZIP
| 方式 | Git 歷史 | 可以 push/pull |
|---|---|---|
| git clone | 保留完整歷史 | 可以 |
| Download ZIP | 沒有 | 不行 |
建議:永遠使用 git clone,不要下載 ZIP。
SSH vs HTTPS 認證
連接 GitHub 有兩種方式:
HTTPS(推薦新手使用)
https://github.com/帳號/儲存庫.git
Code language: JavaScript (javascript)- 設定簡單
- 每次 push 需要輸入帳號密碼(或 Personal Access Token)
- 適合剛入門的使用者
SSH
[email protected]:帳號/儲存庫.git
- 需要先設定 SSH 金鑰
- 設定完成後不需要每次輸入密碼
- 適合每天都在使用 Git 的開發者
如何選擇?
| 情況 | 建議 |
|---|---|
| 剛開始學 Git | HTTPS |
| 覺得每次輸入密碼很煩 | 改用 SSH |
| 公司有安全規範 | 依規範選擇 |
常見問題:push 被拒絕
問題描述
! [rejected] main -> main (fetch first)
error: failed to push some refs to '...'
Code language: JavaScript (javascript)原因
遠端有你本地沒有的變更(可能是你在另一台電腦推送的,或團隊成員的更新)。
解決方法
git pull # 先拉取遠端變更
git push # 再推送
Code language: PHP (php)如果 pull 時有衝突,需要手動解決衝突後再 commit 和 push。
預防方式
養成習慣:開始工作前先 pull,結束工作後就 push。
完整工作流程示範
情境:建立新專案並推送到 GitHub
# 1. 在本地建立專案
mkdir my-project
cd my-project
git init
# 2. 建立檔案並 commit
echo "# My Project" > README.md
git add README.md
git commit -m "初始化專案"
# 3. 在 GitHub 建立儲存庫(透過網頁)
# 4. 連結遠端並推送
git remote add origin https://github.com/你的帳號/my-project.git
git push -u origin main
Code language: PHP (php)情境:在新電腦上繼續開發
# 1. 複製專案
git clone https://github.com/你的帳號/my-project.git
cd my-project
# 2. 進行修改
echo "新功能" >> README.md
git add .
git commit -m "新增功能說明"
git push
Code language: PHP (php)本篇指令速查表
| 指令 | 用途 |
|---|---|
git remote -v |
查看遠端連結 |
git remote add origin <URL> |
新增遠端連結 |
git push -u origin main |
首次推送並設定追蹤 |
git push |
推送變更到遠端 |
git pull |
拉取遠端更新 |
git clone <URL> |
複製遠端儲存庫 |
Git 入門教學系列總結
恭喜你完成了這個系列!讓我們回顧一下學到的內容:
第一篇:什麼是 Git?為什麼要學?
- Git 是版本控制系統,幫你追蹤檔案變更
- 可以隨時回到任何歷史版本
第二篇:安裝與初始設定
- 安裝 Git 並設定姓名和 email
- 了解 Git 的基本設定
第三篇:基本操作
git init:初始化儲存庫git add:加入暫存區git commit:建立提交git status:查看狀態git log:查看歷史
第四篇:遠端協作(本篇)
- GitHub 儲存庫的建立
git remote:管理遠端連結git push:推送變更git pull:拉取更新git clone:複製專案
下一步學習建議
掌握基礎後,可以繼續學習:
- 分支(Branch)操作
git branch:建立分支git checkout/git switch:切換分支git merge:合併分支
- 進階技巧
.gitignore:忽略特定檔案git stash:暫存未完成的工作git revert/git reset:撤銷變更
- 團隊協作
- Pull Request(PR)流程
- Code Review
- 分支策略(Git Flow、GitHub Flow)
- 圖形化工具
- VS Code 內建 Git 功能
- GitHub Desktop
- GitKraken
結語
Git 是現代軟體開發的基礎技能。透過這個系列,你已經掌握了日常開發中 80% 會用到的 Git 操作。
記住,Git 最好的學習方式就是實際使用。從現在開始,每個專案都用 Git 追蹤吧!
遇到問題時,git status 是你最好的朋友——它會告訴你目前的狀態和下一步該做什麼。
祝你在程式開發的道路上一切順利!
Git 入門教學 #04 進階測驗
包含情境題和錯誤診斷題,測試你對遠端協作的深入理解。
1. [情境題] 你在公司電腦完成了一個功能並 push 到 GitHub。回家後想在自己的電腦繼續開發,但發現電腦上還沒有這個專案。你應該怎麼做?
2. [錯誤診斷] 你執行 git push 時看到以下錯誤訊息,最可能的原因和解決方法是什麼?
3. [情境題] 你剛在本地用 git init 建立了一個新專案,也完成了第一個 commit。接下來想把專案放到 GitHub 上。正確的操作順序是?
4. [概念理解] 關於 SSH 和 HTTPS 兩種連接 GitHub 的方式,以下哪個說法是正確的?
5. [最佳實踐] 在團隊協作的環境中,每天開始工作時的最佳做法是什麼?