
身為一個開發者,我深知每次專案面臨大規模翻新時的痛點。許多網路教學總是一步跳到上傳程式碼,卻完全忽略了最核心的痛點——「我的電腦到底要怎麼跟 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. 觀念核心:Git 與 GitHub 的本質差異與運作邏輯
- 2. 起手準備:終端機基本操作與 Git 全域初始化設定
- 3. 關鍵橋樑:如何將本機資料夾與 GitHub 雲端倉庫正式連線?
- 1. 檢查目前綁定哪裡:輸入
git remote -v,終端機會吐出你目前連接的 GitHub 地址,讓你核對專案名稱是否正確。 - 2. 改綁成另一個新專案:如果你一開始不小心複製錯網址,不需刪掉重建,直接輸入:
git remote set-url origin https://github.com/你的帳號/你的新專案.git - 3. 徹底解除綁定:想把這個代號斬斷,直接輸入:
git remote remove origin,就可以重新進行步驟二的全新綁定。
3. 關鍵橋樑:如何將本機資料夾與 GitHub 雲端倉庫正式連線?
⚡ 第一步:取得雲端專案的唯一地址
首先,請登入你的 GitHub 網頁版,進入你「特定想要上傳的那一個專案(Repository)」。點擊綠色的 Code 按鈕,並複製 HTTPS 欄位下的那一串網址(長得像 https://github.com/你的帳號/你的專案名稱.git)。
⚡ 第二步:在本機端綁定遠端網址
回到你的本機端終端機(確認已經 cd 進入專案資料夾),輸入以下指令。這就像是在本機與雲端之間架起一條名為「origin」的隱形橋樑:
git remote add origin https://github.com/你的帳號/你的專案名稱.git
Git 本身是「極度精準」的。你複製的那串 .git 結尾的網址,就是該倉庫的『唯一通訊地址』。當你執行上面那行指令後,本地的 Git 就會把這個特定的網址綁定到 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 既有的網址與星星數,我們直接從裝滿新檔案的乾淨資料夾發動奇襲!
- 準備全新資料夾:請在你的電腦上建立一個全新的乾淨資料夾(例如命名為
my-new-project),並只把這次大改版需要的新檔案放進去。 - 切換到新目錄:打開終端機,使用
cd命令進入這個裝滿新檔案的全新資料夾。 - 初始化全新 Git 並指定 main:這會建立一個完全沒有歷史紀錄的、乾淨的版本庫:
git init -b main - 將新檔案全部打包提交:
git add .
git commit -m "V2 大更新:全新專案架構,全面砍掉重練!" - 綁定你原本舊的 GitHub 倉庫(即剛才步驟三所取得的 URL):
git remote add origin https://github.com/你的帳號/你的專案.git - ⚡ 核心關鍵:發動強制覆蓋 (Force Push):這是最震撼的指令!加上
-f(Force,強制)參數,直接告訴 GitHub:不要管你原本雲端存了什麼,全部用我手裡這筆全新的歷史紀錄直接蓋過去!git push -f origin main
這兩種方法各有千秋!「神技一」適合商業專案或有版本回溯需求的正式產品;「神技二」則適合個人重構專案或希望完全清除黑歷史的開發者。這絕對是目前業界效率最高、最優雅的專案改版祕技!
6. 避坑指南:終端機常見連線錯誤與完美排除方案
git remote add origin https://github.com/你的帳號/你的專案名稱.git
原因分析:這通常是因為雲端 GitHub 上的版本進度比你電腦上的還要新(例如,你在 GitHub 網頁上新增了 README 檔案,或是隊友推了新代碼)。Git 為了安全起見,會防禦性地拒絕你的推送,以免覆蓋別人的成果。