怎麼上傳檔案到GitHub:新手必學的全方位指南與進階技巧

「哎呀,我的程式碼該怎麼放到 GitHub 上去啊?」相信不少剛接觸版本控制,或是想開始將自己的專案與世界分享的朋友,都會遇到這個讓人有點抓頭的疑問。別擔心!這篇文章就是要為你揭開「怎麼上傳檔案到 GitHub」的神秘面紗,從最基礎的建立儲存庫,到實際推送你的程式碼,再到一些進階的實用技巧,我都會用最生活化、最清楚的方式,一步一步帶你走過,讓你輕鬆上手,不再害怕這個看似複雜的流程!

身為一個熱愛程式開發的工程師,我深知版本控制系統,特別是 Git 和 GitHub 的重要性。它不僅是程式碼的保險箱,更是團隊協作的利器。許多人一聽到 Git 就覺得頭昏,覺得它很難學,但其實,只要掌握了核心概念,並且理解了「上傳檔案」這個基本動作,你就能夠開啟一個全新的開發世界。我自己的經驗是,剛開始也覺得一頭霧水,但當我成功地將第一個專案推送到 GitHub 後,那種成就感和自信心是無可比擬的!今天,我就要將我親身的經驗和學習心得,毫無保留地分享給你。

GitHub 檔案上傳核心步驟概覽

簡單來說,要將檔案上傳到 GitHub,主要可以分為幾個大步驟:

  1. 在你本地電腦上準備好檔案: 這就是你想要上傳的程式碼、文件,或是任何數位資產。
  2. 建立一個 GitHub 儲存庫 (Repository): 這就像是你在 GitHub 上的「專案空間」。
  3. 將本地檔案與 GitHub 儲存庫連結: 讓你的電腦知道要去哪裡「寄送」你的檔案。
  4. 將檔案「提交」到本地 Git: 像是把檔案打包,準備好要寄出去。
  5. 將本地的「提交」推送 (Push) 到 GitHub 儲存庫: 這一步才是真正將檔案上傳到雲端的 GitHub 伺服器。

聽起來是不是還好?沒錯,只要按部就班,其實一點都不難。接下來,我們就針對每一個步驟,做更詳細的說明。

步驟一:本地檔案準備與 Git 安裝

在開始上傳之前,你必須確保你的電腦上已經安裝了 Git。Git 是一個分散式版本控制系統,GitHub 則是基於 Git 的一個雲端平台。

安裝 Git

如果你還沒有安裝 Git,請先到 Git 官方網站 下載適合你作業系統的版本(Windows, macOS, Linux 都有提供)。安裝過程通常都很直觀,一路「下一步」即可。安裝完成後,你可以打開你的終端機(Windows 上的 PowerShell 或 Git Bash,macOS 或 Linux 上的 Terminal),輸入以下指令,看看 Git 是否安裝成功:

git --version

如果出現 Git 的版本號,那就代表你成功安裝了!

設定 Git 基本資訊

在開始使用 Git 之前,我們需要設定你的使用者名稱和 Email。這兩個資訊會在你每次提交 (commit) 時被記錄下來,方便辨識是誰做的修改。在終端機輸入以下指令,並將 `你的名字` 和 `你的Email` 替換成你自己的資訊:

git config --global user.name "你的名字"

git config --global user.email "你的Email"

--global 的意思是這個設定會套用到你電腦上所有的 Git 專案,非常方便。

步驟二:建立你的 GitHub 儲存庫 (Repository)

在你開始上傳檔案之前,你需要在 GitHub 上建立一個「家」來存放你的檔案,這就是儲存庫 (Repository,簡稱 Repo)。

建立新儲存庫的流程:

  1. 登入 GitHub: 前往 GitHub 網站,使用你的帳號登入。
  2. 點擊「New」按鈕: 在你的 GitHub 首頁右上角,你會看到一個「+」號的圖示,點擊它,然後選擇「New repository」。
  3. 填寫儲存庫資訊:
    • Repository name: 這就是你儲存庫的名稱。建議取一個有意義、簡潔的名字,例如 `my-first-project`、`portfolio-website` 等。
    • Description (optional): 簡單描述一下這個專案是做什麼的。
    • Public / Private:
      • Public: 任何人都可以看到你的儲存庫,包含程式碼和版本紀錄。適合開源專案。
      • Private: 只有你和你的協作者才能看到。適合個人專案或公司內部專案。
    • Add a README file: 強烈建議勾選這個選項!README.md 檔案是你的專案說明文件,通常會放在儲存庫的首頁,讓其他人快速了解你的專案。
    • Add .gitignore: 這個也很重要!.gitignore 檔案可以讓你指定哪些檔案或資料夾不被 Git 追蹤和上傳,例如編譯產生的檔案、敏感的設定檔、或是 IDE 的快取檔案。GitHub 會提供很多常見的範本,你可以根據你的專案類型選擇。
    • Choose a license: 如果是公開的專案,選擇一個授權條款很重要,例如 MIT、Apache 2.0 等。
  4. 點擊「Create repository」: 完成以上設定後,點擊按鈕,你的新儲存庫就建立好了!

建立好後,你會看到一個頁面,裡面有你的儲存庫名稱、說明,以及一些 Git 指令的範例。這就是你等等要用來連結本地專案的資訊。

步驟三:初始化本地 Git 儲存庫

現在,我們要讓你的本地專案知道,它是一個 Git 專案,並且要和 GitHub 上的儲存庫連結。

方法一:在現有專案中初始化 Git

如果你已經有一個本地的專案資料夾,裡面已經有一些檔案了,你可以透過以下步驟將它變成一個 Git 專案:

  1. 打開終端機: 進入你專案的根目錄。你可以使用 `cd` 指令來切換目錄。例如,如果你的專案在 `Documents/MyProject`,就輸入:
  2. cd Documents/MyProject

  3. 初始化 Git: 在這個目錄下,輸入以下指令:
  4. git init

    這會在你的專案資料夾中建立一個隱藏的 `.git` 資料夾,裡面包含了 Git 的所有設定和版本紀錄。看到「Initialized empty Git repository in /path/to/your/project/.git/」這樣的訊息,就代表成功了。

方法二:從 GitHub 複製 (Clone) 一個現有儲存庫

如果你是從頭開始,或是想要把 GitHub 上的現有專案複製到本地,可以使用 `clone` 指令。這個方法會自動幫你完成初始化和連結 GitHub 儲存庫的步驟。

  1. 在 GitHub 儲存庫頁面找到 Clone URL: 在你剛剛建立好的 GitHub 儲存庫頁面,你會看到一個綠色的按鈕,上面寫著「Code」。點擊它,你會看到一個 URL,通常有 HTTPS 和 SSH 兩種格式。
  2. 複製 Clone URL: 點擊旁邊的複製圖示,複製該 URL。
  3. 在終端機執行 Clone 指令: 打開終端機,進入你想要存放這個專案的資料夾,然後執行:
  4. git clone [你的Clone URL]

    例如:

    git clone https://github.com/your-username/your-repository-name.git

    這會在你的當前目錄下,建立一個與你的 GitHub 儲存庫同名的資料夾,並下載所有檔案和版本紀錄。之後你就可以進入這個資料夾,開始修改檔案了。

步驟四:將檔案添加到 Git 的暫存區 (Staging Area)

在將檔案「提交」到 Git 之前,你需要先告訴 Git 你想將哪些檔案納入這次的變更紀錄。這一步稱為「添加」或「暫存」 (add / stage)。

查看檔案狀態

在進行任何操作之前,你可以先用以下指令查看目前檔案的狀態:

git status

這個指令會告訴你哪些檔案被修改了,哪些是 Git 還沒有追蹤的新檔案 (untracked files)。

添加檔案到暫存區

有幾種方式可以添加檔案:

  • 添加單一檔案:
  • git add [你的檔案名稱]

    例如:git add index.html

  • 添加多個檔案:
  • git add [檔案1] [檔案2] [檔案3]

    例如:git add index.html style.css script.js

  • 添加目前目錄下的所有檔案(包含新增的):
  • git add .

    這個指令非常常用,它會將目前目錄下所有新增或修改的檔案都添加到暫存區。請注意:如果你有設定 `.gitignore` 檔案,這些被忽略的檔案就不會被添加。

  • 添加所有變更(包含已追蹤檔案的修改):
  • git add -u

    這個指令只會添加那些 Git 已經在追蹤的檔案的修改,不會添加全新的檔案。

再次執行 `git status`,你會發現原本在「Untracked files」下的檔案,現在已經移動到「Changes to be committed」下方了。

步驟五:提交變更 (Commit)

「提交」(Commit) 就是將你暫存區裡的檔案變更,記錄下來,形成一個「版本」。每一次的提交都應該包含一個清晰的訊息,說明這次修改了什麼內容。這非常重要,方便你未來回溯和了解專案的演進。

執行 Commit 指令

在執行 `git add` 後,你就可以用 `git commit` 指令來提交了。最常見的使用方式是搭配 `-m` 參數,直接在指令後加上提交訊息:

git commit -m "你的提交訊息"

例如:

git commit -m "Add initial HTML structure for the homepage"

Commit 訊息的撰寫原則

  • 簡潔有力: 第一行通常是簡潔的摘要,長度不超過 50 個字元。
  • 說明「什麼」和「為什麼」: 如果需要,可以在第一行後空一行,撰寫更詳細的說明,解釋這次變更的內容以及為什麼要做這樣的修改。
  • 避免隨意: 每一條 Commit 訊息都應該是有意義的,能夠讓你和你的團隊快速理解。

成功提交後,你會看到類似這樣的訊息:「[master f123456] Add initial HTML structure for the homepage」以及一些統計資訊,代表你的變更已經被記錄在本地 Git 裡了。

步驟六:推送 (Push) 變更到 GitHub

恭喜你!你已經完成了本地的儲存和版本記錄。現在,我們要將這些本地的變更「推送」(Push) 到 GitHub 上的遠端儲存庫,讓其他人可以看到,或是備份在雲端。

推送指令

使用 `git push` 指令來完成這個動作。第一次推送一個新的分支時,通常需要加上 `-u` 參數,讓 Git 記住這個本地分支與遠端分支的連結:

git push -u origin main (或者 `master`,取決於你的預設分支名稱)

指令解析:

  • git push 執行推送操作。
  • -u (或 `–set-upstream`) 設定上游分支,讓 Git 記住這個本地分支未來預設要推送到哪個遠端分支。
  • origin 這是 Git 的預設遠端名稱,通常指向你從 GitHub Clone 下來時的那個原始儲存庫。
  • main (或 `master`): 這是你想要推送的本地分支名稱。現代 Git 預設分支通常是 `main`,舊版的可能是 `master`。你可以透過 `git branch` 來查看你目前的分支。

在執行這個指令後,GitHub 會要求你輸入你的 GitHub 使用者名稱和密碼(或 Personal Access Token,PAT,這是目前較推薦的安全驗證方式)。成功驗證後,你的檔案就會被上傳到 GitHub 上的儲存庫了!

之後,如果你在本地做了新的修改、提交,就可以直接執行:

git push

Git 已經知道要推送到哪裡去了。

使用 GitHub Desktop 簡化流程

對於剛開始接觸 Git 的朋友,終端機指令可能會有點嚇人。別擔心!GitHub 官方提供了非常直觀的圖形化介面工具:GitHub Desktop。

GitHub Desktop 的優勢

  • 視覺化操作: 你可以清楚地看到檔案的變更、提交紀錄,操作起來更直觀。
  • 簡化指令: 很多 Git 指令,如 `add`, `commit`, `push`, `pull` 等,都可以在 GitHub Desktop 中透過點擊按鈕來完成。
  • 易於學習: 對於新手來說,是快速入門 Git 的絕佳工具。

如何使用 GitHub Desktop 上傳檔案

  1. 下載並安裝 GitHub Desktop: 前往 GitHub Desktop 官方網站 下載並安裝。
  2. 登入 GitHub 帳號: 開啟 GitHub Desktop,使用你的 GitHub 帳號登入。
  3. 選擇要管理的儲存庫:
    • Clone a repository from the Internet: 如果你要複製 GitHub 上的現有專案到本地,選擇這個選項。
    • Add an existing repository from your computer: 如果你已經有一個本地專案,想要將它納入 Git 管理並連結到 GitHub,選擇這個選項。
  4. 開始進行 Git 操作:
    • 變更顯示: 在 GitHub Desktop 的左側欄位,你會看到所有變更的檔案。
    • Commit: 在底部的文字框中輸入你的 Commit 訊息,然後點擊「Commit to main」 (或你的分支名稱)。
    • Push: Commit 完成後,你會看到一個「Push origin」的按鈕,點擊它即可將變更推送到 GitHub。

GitHub Desktop 大大地降低了 Git 的入門門檻,對於許多日常操作來說,它提供了一個非常友善的替代方案。

常見問題與解答

Q1:我的 GitHub 儲存庫裡已經有一些檔案了,我怎麼把本地的檔案也加進去?

A1:

這種情況下,你通常會從 GitHub 複製 (clone) 你在 GitHub 上的儲存庫到本地。然後,將你準備好的本地檔案,複製或移動到這個被 clone 下來的資料夾中。接著,在終端機或 GitHub Desktop 中,使用 `git add .` (或是選擇性地添加特定檔案) 將這些新檔案暫存,再進行 `git commit` 和 `git push` 操作。這樣,你本地新增的檔案就會被同步到 GitHub 上的儲存庫了。

Q2:我修改了檔案,也 commit 了,但 Push 的時候出現錯誤,怎麼辦?

A2:

推送失敗的原因有很多,最常見的可能是:

  • 網路問題: 檢查你的網路連線是否穩定。
  • 權限問題: 確保你使用的 GitHub 帳號有權限推送這個儲存庫。如果是私有儲存庫,要確認你不是只有讀取權限。
  • 儲存庫狀態不一致: 這通常發生在多人協作時。你本地的儲存庫可能落後於遠端儲存庫。這種情況下,你需要先執行 `git pull` 來獲取遠端最新的變更,解決可能出現的衝突後,再進行 `git push`。
  • 認證問題: 檢查你的 GitHub 使用者名稱和密碼(或 PAT)是否正確。

你可以仔細閱讀推送錯誤訊息,通常它會提供一些線索指引你解決問題。如果還是不確定,可以嘗試先 `git pull`,然後再 `git push`。

Q3:Git 的 `add` 和 `commit` 有什麼區別?

A3:

這兩者是 Git 工作流程中非常核心的概念,區別如下:

  • `git add` (暫存): 這是將你對檔案的修改,從「工作目錄」(Working Directory) 放入「暫存區」(Staging Area) 的過程。你可以想像成,你在準備要寄出的包裹,`git add` 就是你把某些文件放進這個包裹裡,並貼上標籤,標示出「這些是要一起寄送的」。你可以在提交前,隨時添加或移除暫存區的文件。
  • `git commit` (提交): 這是將暫存區裡的所有變更,打包成一個「提交」(Commit) 紀錄。這個紀錄會被永久地保存在你本地 Git 的歷史紀錄中,包含作者、時間、以及你留下的提交訊息。每一次提交都是一個獨立的版本快照,你之後可以隨時回溯到這個版本。

簡單來說,`add` 是「準備要送」,`commit` 是「打包寄出並留下紀錄」。你必須先 `add`,才能 `commit`。

Q4:我誤刪了檔案,怎麼救回來?

A4:

如果你的檔案被誤刪,但你之前有將它納入 Git 的追蹤,並且已經 `commit` 過,那麼你就可以很方便地救回來!

  • 如果是最近 commit 的變更: 你可以先用 `git status` 看看這個被刪的檔案出現在哪裡。如果它在「Changes not staged for commit」或「Changes to be committed」下,表示 Git 知道這個檔案被刪了。你可以執行:
  • git checkout -- [被刪的檔案名稱]

    這個指令會將該檔案從 Git 的歷史紀錄中「還原」回來,回到上一次 commit 的狀態。請注意:這個指令會覆蓋掉工作目錄中所有尚未 commit 的變更,所以要謹慎使用。

  • 如果檔案很久以前 commit 過,現在才發現被刪: 你可以先使用 `git log` 查看所有的 commit 紀錄,找到你想要還原的那個 commit 的 ID (一長串的英數字)。然後執行:
  • git checkout [commit ID] -- [被刪的檔案名稱]

    這會將指定檔案在那個特定 commit 的版本還原到你的工作目錄。之後你可能需要再 `git add` 和 `git commit` 一次,將這個還原的動作記錄下來。

Git 的強大之處就在於它的版本回溯能力,只要你養成良好的 commit 習慣,就能大大降低意外發生的風險。

總結:擁抱 Git,讓開發更順暢

「怎麼上傳檔案到 GitHub」這個問題,看似簡單,但背後其實蘊含了整個 Git 的版本控制流程。從安裝 Git、建立儲存庫、初始化本地專案,到 add、commit、push,每一個步驟都環環相扣。

我一直認為,學習 Git 和 GitHub,對於任何一位現代的軟體開發者來說,都是一項必備的技能。它不僅能讓你更好地管理自己的程式碼,更重要的是,它為你打開了與世界各地開發者協作的大門。無論你是個人開發者,還是團隊中的一員,善用 Git 和 GitHub,都能讓你的開發流程更加順暢、高效,並且更有保障。

別被一開始的陌生感給嚇到,多動手嘗試幾次,你會發現,Git 其實非常有趣且實用。從今天起,就開始你的 GitHub 之旅吧!將你的第一個專案推送到 GitHub,感受那份成就感,然後一步步探索 Git 更進階的強大功能!

怎麼上傳檔案到GitHub

發佈留言