前言:為什麼需要 GitHub?
如果說 Git 是你電腦裡的「個人筆記本」,忠實記錄每一次修改,那 GitHub 就是一座「雲端圖書館」——你可以把筆記本上架、備份、分享給全世界,也可以借閱別人的作品。
很多新手會把 Git 和 GitHub 混為一談,先釐清:
| Git | GitHub | |
|---|---|---|
| 本質 | 版本控制工具(裝在你電腦裡) | 存放 Git 倉庫的雲端平台 |
| 沒有網路能用嗎 | 可以,完全本地運作 | 不行,它就是網路服務 |
| 替代品 | 幾乎沒有 | GitLab、Bitbucket、Gitea |
這篇文章的目標很單純:帶你完成第一次「設定 → 推(push)→ 拉(pull)」的完整循環。做完這一輪,你就正式從「本地玩家」升級成「連線玩家」了。
一、前置設定
1. 註冊 GitHub 帳號
到 github.com 註冊,免費方案就夠用(私有倉庫也免費)。使用者名稱想清楚再取——它會出現在你所有倉庫的網址裡。
2. 設定 Git 身分
Git 的每個 commit 都會蓋上「作者印章」,先告訴 Git 你是誰:
# --global 表示這台電腦所有專案都用這個身分
git config --global user.name "你的名字"
git config --global user.email "你的email@example.com"
# 確認設定結果
git config --global --list
💡 小提醒:這裡的 email 建議跟 GitHub 帳號的 email 一致,這樣 GitHub 才能把 commit 跟你的頭像連起來。不想公開信箱的話,GitHub 有提供
xxx@users.noreply.github.com的匿名信箱(在 Settings → Emails 裡找)。
3. 設定連線驗證:選一條路線
2021 年 8 月之後,GitHub 不再接受帳號密碼推送。你有兩條路:
- 路線 A:SSH 金鑰——一次設定、終身免密,推薦日常主力機使用
- 路線 B:HTTPS + Personal Access Token(PAT)——設定門檻低,防火牆環境也通
兩條都會教,選一條走完即可。
路線 A:SSH 金鑰(推薦)
SSH 設定只要四步:
# 步驟 1:產生金鑰(一路按 Enter 用預設值即可)
ssh-keygen -t ed25519 -C "你的email@example.com"
# 步驟 2:複製公鑰內容
cat ~/.ssh/id_ed25519.pub
步驟 3:到 GitHub → 右上角頭像 → Settings → SSH and GPG keys → New SSH key,把剛剛複製的內容貼上、存檔。
# 步驟 4:測試連線
ssh -T git@github.com
# 看到 "Hi 你的帳號! You've successfully authenticated..." 就成功了
⚠️ 注意:
id_ed25519.pub(公鑰)才是要貼到 GitHub 的;沒有.pub的那個是私鑰,永遠不要給任何人。
走 SSH 的話,倉庫網址長這樣:
git@github.com:你的帳號/my-first-repo.git
路線 B:HTTPS + PAT
不想碰 SSH 的話,HTTPS 是另一條路——網址長這樣:
https://github.com/你的帳號/my-first-repo.git
但注意:密碼的位置要改填 Personal Access Token(PAT),不是你的登入密碼。
步驟 1:申請 PAT
GitHub → 右上角頭像 → Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token (classic):
- Note:取個名字,例如
my-laptop - Expiration:有效期限,建議 90 天(到期再換)
- Scopes:勾
repo就夠推拉用了 - 按 Generate,馬上複製 token——這串
ghp_開頭的字只會顯示這一次,關掉頁面就再也看不到了
步驟 2:推送時用 PAT 當密碼
git push
# Username: 你的 GitHub 帳號
# Password: 貼上 PAT(不是你的登入密碼!)
⚠️ 輸入 Password 時畫面不會顯示任何字元,這是正常的,貼上直接按 Enter。
步驟 3:讓 Git 記住它(不用每次都貼)
# macOS:存進鑰匙圈(通常已是預設)
git config --global credential.helper osxkeychain
# Windows:Git for Windows 內建 Git Credential Manager,通常裝好就有
# 第一次 push 會跳出視窗讓你直接登入 GitHub,連 PAT 都不用自己申請
# Linux:存在 ~/.git-credentials(明碼保存,僅個人電腦建議)
git config --global credential.helper store
成功推一次之後,之後的 git push / git pull 就不會再問了。
💡 懶人捷徑:裝 GitHub CLI,跑一次
gh auth login照著選項按完,HTTPS 憑證全部自動設好,不用手動申請 PAT。
SSH vs HTTPS 怎麼選?
| SSH | HTTPS + PAT | |
|---|---|---|
| 設定成本 | 前期較高(產金鑰、貼公鑰) | 較低(申請 token 即用) |
| 之後使用 | 一次設定終身免密 | 配合憑證管理員也能免密,但 token 會過期要換 |
| 公司防火牆 | 22 port 可能被擋 | 443 port 幾乎都通 |
| 適合誰 | 日常主力開發機 | 臨時機器、CI、防火牆嚴格的環境 |
已經選了一條、之後想換?隨時可以:
# 看目前的遠端網址
git remote -v
# 換成 HTTPS
git remote set-url origin https://github.com/你的帳號/my-first-repo.git
# 換回 SSH
git remote set-url origin git@github.com:你的帳號/my-first-repo.git
二、建立你的第一個遠端倉庫
登入 GitHub 後,點右上角「+」→「New repository」:
- Repository name:倉庫名稱,例如
my-first-repo - Public / Private:公開或私有,練習用選哪個都行
- Add a README file:建議勾選,倉庫才不會是空的
建好之後,倉庫頁面上綠色的「Code」按鈕裡就能複製網址——SSH 和 HTTPS 兩種格式都在那裡,依你剛剛選的路線拿對應的那個。
三、把遠端倉庫拉下來:git clone
clone 就是「把整座圖書館複製一份到你家」——包含所有檔案和完整歷史紀錄:
# 複製遠端倉庫到本地(HTTPS 路線就換成 https:// 開頭的網址)
git clone git@github.com:你的帳號/my-first-repo.git
# 進入專案資料夾
cd my-first-repo
# 看看遠端設定(clone 會自動幫你設好一個叫 origin 的遠端)
git remote -v
origin 是遠端倉庫的預設代稱,之後的推拉都會用到它。
📌 另一種情境:如果你是本地已經有專案、想推上 GitHub,流程反過來——在 GitHub 建一個「不勾 README 的空倉庫」,然後:
git remote add origin git@github.com:你的帳號/專案名.git git push -u origin main
四、推:把修改送上 GitHub(git push)
日常工作的核心三連擊:add → commit → push。
# 1. 改點東西
echo "Hello GitHub" >> hello.txt
# 2. 加入暫存區
git add hello.txt
# 3. 提交到本地倉庫
git commit -m "新增 hello.txt"
# 4. 推送到 GitHub
git push
第一次推送某個分支時,要多加參數建立「追蹤關係」:
# -u(--set-upstream):讓本地 main 跟遠端 main 綁定
# 綁定之後,以後只要打 git push 就好
git push -u origin main
推完之後回 GitHub 網頁重新整理——你的 commit 已經在雲端了。這就是「推」。
五、拉:把 GitHub 上的更新抓回來(git pull)
當遠端有新東西(同事推了 code、或你在 GitHub 網頁上直接編輯了檔案),本地就落後了。這時候用 pull:
# 把遠端的最新內容抓下來,並合併進目前分支
git pull
git pull 其實是兩個動作的合體:
git pull = git fetch(下載遠端更新) + git merge(合併進本地分支)
💡 養成好習慣:每天開工先
git pull,收工前git push。就像共用白板——動筆前先看看別人寫了什麼,寫完記得存檔。
最常見的錯誤:push 被拒絕
! [rejected] main -> main (fetch first)
error: failed to push some refs...
看到這個不用慌,意思是「遠端有你本地沒有的 commit」。解法就是先拉再推:
git pull # 先把遠端更新合併進來(有衝突就解衝突)
git push # 再推
六、日常循環總覽
┌─────────── git push ──────────┐
│ ▼
本地倉庫 (你的電腦) GitHub (origin)
▲ │
└─────────── git pull ──────────┘
日常節奏:pull → 改 code → add → commit → push
常見問題速查
| 症狀 | 原因 | 解法 |
|---|---|---|
Permission denied (publickey) | SSH 金鑰沒設好 | 回到「路線 A」,用 ssh -T git@github.com 測試 |
| push 輸入密碼一直失敗 | GitHub 已停用密碼驗證 | 走「路線 B」申請 PAT,密碼欄貼 PAT |
Support for password authentication was removed... | 同上,用了登入密碼 | 同上,或改走 SSH |
[rejected] fetch first | 遠端比本地新 | 先 git pull 再 git push |
| 每次 push 都要重新輸入 token | 沒設憑證管理員 | 「路線 B」步驟 3 設定 credential.helper |
本地是 master、遠端是 main | 新舊預設分支名不同 | git branch -M main 把本地改名 |
小結
這一篇我們完成了 GitHub 的第一個完整循環:
- 設定:
git config表明身分;驗證走 SSH(一勞永逸)或 HTTPS + PAT(門檻低) - 推:
add → commit → push,把成果送上雲端;第一次記得-u綁定分支 - 拉:
git pull保持同步,遇到 rejected 先拉再推
推和拉打通之後,你已經具備跟世界協作的基本能力。至於遠端倉庫更深入的玩法——fetch 與 pull 的差異、追蹤分支、Fork 別人的專案——請看第五章:遠端倉庫與團隊協作,那裡有完整的深度解析。
動手做一次,勝過看十遍。現在就去建你的第一個 repo 吧!