身為一個開發者,我深知每次專案面臨大規模翻新時的痛點。許多網路教學總是一步跳到上傳程式碼,卻完全忽略了最核心的痛點——「我的電腦到底要怎麼跟 GitHub 建立安全連線?」特別是自從 GitHub 廢除密碼登入、改用 Token 認證與 SSH 金鑰後,連線設定就成了新手最大的惡夢。今天,James Polik 要帶大家從零開始,不僅要把基礎打穩,更要詳細拆解「本機與雲端建立連線」的完整路徑,最後再雙手奉上目前業界最新、最乾淨的「新資料夾強制覆蓋術」!不囉唆,我們馬上開始!

 

 

1. 觀念核心:Git 與 GitHub 的本質差異與運作邏輯

在學習下指令之前,我們必須先搞懂這兩個常被混淆的名詞,這會大大幫助你理解我們到底在對電腦做什麼。

簡單來說,Git 是一個「工具」,它安裝在你電腦的作業系統中,不需要網路也可以運作。它的主要任務是像時光機一樣,記錄你本機端檔案的所有修改歷史。而 GitHub 則是一個「雲端平台」,它是用來託管 Git 倉庫的空間。你把電腦裡的 Git 紀錄推送到 GitHub,全世界的夥伴才能協作開發,你也才能將作品公開分享。記住:Git 負責版本控制,GitHub 負責雲端託管。

為了理解 Git 的運作,我們必須知道它有三個核心區域:

  • 工作目錄 (Working Directory):就是你平常在電腦裡看得到的資料夾,你直接在這裡新增、修改或刪除檔案。
  • 暫存區 (Staging Area):像是一個購物車,當你輸入 git add 時,修改過的檔案就會被放進這裡,等待被正式打包。
  • 本地倉庫 (Local Repository):當你輸入 git commit 後,暫存區的檔案就會被正式封裝成一個「版本紀錄」(Commit),永久保存在本地資料庫中。

當這三個區域的邏輯建立起來之後,在使用終端機下指令時,你腦中就會有清晰的畫面,知道每一行代碼正在將檔案推向哪一個階段,這也是擺脫圖形介面、掌握 Git 精髓的第一步。

📖 文章目錄 (點擊快速跳轉)
  1. 1. 觀念核心:Git 與 GitHub 的本質差異與運作邏輯
  2. 2. 起手準備:終端機基本操作與 Git 全域初始化設定
  3. 3. 關鍵橋樑:如何將本機資料夾與 GitHub 雲端倉庫正式連線?
  4. 3. 關鍵橋樑:如何將本機資料夾與 GitHub 雲端倉庫正式連線?

    ⚡ 第一步:取得雲端專案的唯一地址

    首先,請登入你的 GitHub 網頁版,進入你「特定想要上傳的那一個專案(Repository)」。點擊綠色的 Code 按鈕,並複製 HTTPS 欄位下的那一串網址(長得像 https://github.com/你的帳號/你的專案名稱.git)。

    ⚡ 第二步:在本機端綁定遠端網址

    回到你的本機端終端機(確認已經 cd 進入專案資料夾),輸入以下指令。這就像是在本機與雲端之間架起一條名為「origin」的隱形橋樑:

    git remote add origin https://github.com/你的帳號/你的專案名稱.git
    💡 深度解析:我有那麼多個 Repo,電腦怎麼知道要推到哪一個?

    Git 本身是「極度精準」的。你複製的那串 .git 結尾的網址,就是該倉庫的『唯一通訊地址』。當你執行上面那行指令後,本地的 Git 就會把這個特定的網址綁定到 origin 這個代號上。因此,不管你帳號裡有多少專案,只要你指定了這串網址,程式碼就絕對不會走錯棚!

    如果你不確定目前本機到底綁定了哪一個倉庫,或是綁錯了想修改,請善用以下除錯指令:

    • 1. 檢查目前綁定哪裡:輸入 git remote -v,終端機會吐出你目前連接的 GitHub 地址,讓你核對專案名稱是否正確。
    • 2. 改綁成另一個新專案:如果你一開始不小心複製錯網址,不需刪掉重建,直接輸入:
      git remote set-url origin https://github.com/你的帳號/你的新專案.git
    • 3. 徹底解除綁定:想把這個代號斬斷,直接輸入:git remote remove origin,就可以重新進行步驟二的全新綁定。

    如果不確定有沒有綁定成功,可以輸入以下指令來檢查:

    git remote -v

    如果終端機顯示了兩行剛才綁定的 HTTPS 網址,並且後面標註了 (fetch)(push),恭喜你,連線關係建立成功!

    🔐 第三步:解決身份認證(不能用常規密碼登入!)

    從 2021 年開始,GitHub 為了安全性,全面停止支援在終端機輸入密碼來推送程式碼。如果你直接輸入 GitHub 密碼,會遇到 Support for password authentication was removed 的錯誤。你必須改用 個人存取權杖 (Personal Access Token, PAT)

    如何產生 Token:
    1. 在 GitHub 網頁版,點擊右上角個人頭像 -> Settings
    2. 拉到最左下方,點擊 Developer settings
    3. 選擇 Personal access tokens -> Tokens (classic)
    4. 點選 Generate new token (classic)
    5. 填寫 Note(例如:MyMacbook),勾選 repo(控制代碼庫的讀寫權限)與 write:packages,接著點最下方綠色的 Generate token
    6. 🔥 重要:畫面會出現一串長得很像 ghp_xxxxxxxxx 的長代碼,請立刻把它複製備份好!因為這個畫面只要一關掉,這輩子就再也看不到了。

    如何使用 Token:
    當你第一次執行 git push 時,終端機會彈出視窗要求輸入 Username 與 Password。請輸入你的 GitHub 帳號,但**「密碼欄位請直接貼上剛剛複製的那一串 ghp_ 開頭的 Token」**,按下 Return 即可成功通過驗證並上傳!

4. 實戰核心:日常開發最常用的 Git 黃金工作流

在專案開發的日常中,你會反覆使用一組經典的黃金流程。這套流程被稱為「Git 工作流」,不論在世界各地的哪一間科技公司,這都是標準配備。讓我們用卡片式圖表來拆解這四個經典步驟:

🌱 1. 初始化 (Init)

在你的全新資料夾中輸入此指令,Git 會在此建立隱藏的 .git 資料夾,正式接管版本監控。

git init

🛒 2. 暫存檔案 (Add)

把修改過的檔案放進暫存區。點「.」代表加入全部更動,你也可以指定單一檔案名稱。

git add .

🏷️ 3. 提交紀錄 (Commit)

將暫存區的檔案打包並記錄。-m 後面務必寫上清晰、具有語意的英文或中文修改說明。

git commit -m "修正選單Bug"

🚀 4. 推送雲端 (Push)

將本地端 commit 的紀錄同步推送到遠端 GitHub 倉庫。第一次推送建議加上 -u 參數。

git push origin main

在每一次執行 git commit 之前,強烈建議養成好習慣,輸入 git status 檢查目前的狀態。紅色的檔案代表尚未暫存,綠色的檔案代表已經在暫存區準備好要打包。這可以防止你一不小心把不必要的暫存檔(例如系統自動生成的 .DS_Store 或 node_modules)也一起推上 GitHub。

5. 進階神技:專案大改版「安全清空」與「砍掉重練」雙全策

這是很多開發者在進行專案重構時最容易卡關的地方。你的專案可能迎來了架構大改版(例如從 Vue2 升級到 Vue3,或是換了全新的框架),舊資料夾裡亂七八糟。你想把 GitHub 上的內容完全排空、塞入新版檔案,同時想要完美保留這個 Repo 既有的網址、星星數(Stars)與 Issues 分類。這時候,我們有兩種截然不同的神技可以選擇:

🛡️ 神技一:留有退路的「安全清空與一鍵還原術」(保留歷史紀錄)

如果你希望把 Repo 裡的檔案全部清空,好整理大更新,但希望保留過去所有的 Commit 歷史,以防未來反悔想要救回舊版本,這是最安全、最具備專業開發水準的作法!

1. 如何安全清空:

進入本機專案資料夾後,一口氣清空所有被 Git 追蹤的檔案(這不會刪除隱藏的 .git 資料庫檔案):

git rm -rf .
git commit -m "為了大更新安全清空所有舊檔案,保留完整歷史線"
git push origin main

2. 未來如何「一鍵還原」:

如果有一天你突然需要找回舊檔案,因為歷史紀錄還在,你只需對著清空的那一筆 Commit 發送「反向撤銷(Revert)」,所有檔案就會在一秒內完美重現,完全不傷及歷史紀錄:

git revert HEAD --no-edit
git push origin main

⚡ 神技二:破釜沉舟的「全新資料夾強制覆蓋術」(全新開始不留紀錄)

如果你覺得舊的 Commit 歷史紀錄雜亂無章、毫無參考價值,你想讓專案像個初生嬰兒一樣擁有一個完全乾淨的起點,但同時要保留 GitHub 既有的網址與星星數,我們直接從裝滿新檔案的乾淨資料夾發動奇襲!

  1. 準備全新資料夾:請在你的電腦上建立一個全新的乾淨資料夾(例如命名為 my-new-project),並只把這次大改版需要的新檔案放進去。
  2. 切換到新目錄:打開終端機,使用 cd 命令進入這個裝滿新檔案的全新資料夾。
  3. 初始化全新 Git 並指定 main:這會建立一個完全沒有歷史紀錄的、乾淨的版本庫:
    git init -b main
  4. 將新檔案全部打包提交:
    git add .
    git commit -m "V2 大更新:全新專案架構,全面砍掉重練!"
  5. 綁定你原本舊的 GitHub 倉庫(即剛才步驟三所取得的 URL):
    git remote add origin https://github.com/你的帳號/你的專案.git
  6. ⚡ 核心關鍵:發動強制覆蓋 (Force Push):這是最震撼的指令!加上 -f(Force,強制)參數,直接告訴 GitHub:不要管你原本雲端存了什麼,全部用我手裡這筆全新的歷史紀錄直接蓋過去!
    git push -f origin main

這兩種方法各有千秋!「神技一」適合商業專案或有版本回溯需求的正式產品;「神技二」則適合個人重構專案或希望完全清除黑歷史的開發者。這絕對是目前業界效率最高、最優雅的專案改版祕技!

6. 避坑指南:終端機常見連線錯誤與完美排除方案

git remote add origin https://github.com/你的帳號/你的專案名稱.git
  • 錯誤二:error: failed to push some refs to... (Updates were rejected)
    原因分析:這通常是因為雲端 GitHub 上的版本進度比你電腦上的還要新(例如,你在 GitHub 網頁上新增了 README 檔案,或是隊友推了新代碼)。Git 為了安全起見,會防禦性地拒絕你的推送,以免覆蓋別人的成果。
  • 創作者介紹
    創作者 小黃老師嘿技術 的頭像
    小黃老師

    小黃老師嘿技術

    小黃老師 發表在 痞客邦 留言(0) 人氣( 118 )