GitHub 入門:從設定到推、拉 – 你的第一個遠端倉庫

前言:為什麼需要 GitHub?

如果說 Git 是你電腦裡的「個人筆記本」,忠實記錄每一次修改,那 GitHub 就是一座「雲端圖書館」——你可以把筆記本上架、備份、分享給全世界,也可以借閱別人的作品。

很多新手會把 Git 和 GitHub 混為一談,先釐清:

GitGitHub
本質版本控制工具(裝在你電腦裡)存放 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)

  1. Note:取個名字,例如 my-laptop
  2. Expiration:有效期限,建議 90 天(到期再換)
  3. Scopes:勾 repo 就夠推拉用了
  4. 按 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 怎麼選?

SSHHTTPS + 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」:

  1. Repository name:倉庫名稱,例如 my-first-repo
  2. Public / Private:公開或私有,練習用選哪個都行
  3. 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 先拉再推

推和拉打通之後,你已經具備跟世界協作的基本能力。至於遠端倉庫更深入的玩法——fetchpull 的差異、追蹤分支、Fork 別人的專案——請看第五章:遠端倉庫與團隊協作,那裡有完整的深度解析。

動手做一次,勝過看十遍。現在就去建你的第一個 repo 吧!

404NOTE
404NOTE
文章: 51

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *