1. 前言
為什麼要將 Ubuntu 與 GitHub 結合使用?
近年來,Git 和 GitHub 的應用在軟體開發與系統管理的領域中變得日益普遍。對於使用 Ubuntu 這類 Linux 環境的工程師與程式開發者而言,與 GitHub 的整合已成為日常工作的一部分。
Git 是一種用於管理原始碼版本的工具,能有效協助多人協作開發。相對地,GitHub 則是一個可在線上託管 Git 儲存庫的服務平台,讓開發者能夠與全球使用者分享與協作。
為什麼選擇在 Ubuntu 上使用 GitHub?
Ubuntu 是深受開發者喜愛的 Linux 發行版,與開源開發的相容性極佳。它提供了易於安裝 Git 與其他開發工具的環境,使 GitHub 的整合操作變得順暢又高效。
以下是幾個適合搭配 Ubuntu 與 GitHub 使用的常見場景:
- 在 GitHub 上管理與分享 Python 或 C++ 等程式碼
- 參與開源專案並做出貢獻(Contribute)
- 將個人專案成果公開作為作品集
本文將學到的內容
本指南將依照以下步驟,從基礎到進階,深入說明如何在 Ubuntu 上有效利用 GitHub。
- 如何在 Ubuntu 上安裝 Git
- Git 的基本設定與 SSH 連線方式
- 在 GitHub 上建立與管理儲存庫
- 整合 Visual Studio Code 提升開發效率
- 常見問題與 FAQ 解答
即使是首次使用 GitHub 的讀者也能輕鬆學習,文章會搭配實際指令範例與注意事項進行說明。如果您是 Ubuntu 使用者,並希望充分發揮 GitHub 的潛力,請務必閱讀至最後!
2. 在 Ubuntu 安裝 Git
什麼是 Git?再次理解其重要性
Git 是一種版本控制系統(VCS: Version Control System),專為軟體開發而設計。它可以記錄原始碼的變更歷史,並支援還原至過去的版本,讓多人協作開發變得更順利。
在 Ubuntu 等 Linux 環境中,Git 的安裝非常簡單快捷。透過以下方法,只需幾分鐘即可透過終端機完成安裝。
使用 APT 安裝 Git 的步驟
在 Ubuntu 中,最常見且穩定的 Git 安裝方式是使用 APT(Advanced Package Tool)。請依照以下步驟進行。
1. 更新套件清單
sudo apt update
這個指令會讓系統取得最新的套件資訊。安裝任何套件之前,請務必先執行這個步驟。
2. 安裝 Git
sudo apt install git
當系統詢問「Y/n」時,請輸入 y
並按下 Enter,安裝程序將會開始。
確認 Git 是否安裝成功
安裝完成後,可以透過以下指令確認 Git 是否成功安裝:
git --version
若出現類似以下的訊息,表示安裝成功:
git version 2.34.1
版本號會因為您使用的 Ubuntu 版本或套件更新狀況而有所不同,只要能顯示出版本資訊,就代表安裝完成。
補充:透過 Snap 套件安裝 Git
在 Ubuntu 中也可以透過 snap
指令來安裝 Git,不過APT 是更常見且穩定的方式。若無特殊需求,建議優先使用 APT 來安裝。
3. Git 的初始設定
在使用 Git 前需要進行哪些基本設定?
完成 Git 安裝後,接下來最重要的就是設定使用者資訊與驗證方式。這些設定能確保您與遠端儲存庫的互動順暢,並有助於團隊開發的協調與識別。
設定 Git 使用者名稱與電子郵件
Git 每次提交(commit)時都會記錄「由誰進行了修改」,因此需要預先設定使用者名稱與電子郵件。
設定指令
git config --global user.name "你的名字"
git config --global user.email "you@example.com"
這裡所設定的名稱與信箱不一定要與您的 GitHub 帳號一致,但建議與 GitHub 使用的資訊相同,方便在提交記錄中正確顯示身份。
查看目前設定內容
git config --list
透過這個指令可以檢查目前的 Git 設定清單。
產生 SSH 金鑰並註冊至 GitHub
雖然 GitHub 也支援 HTTPS 連線,但使用 SSH 連線可以免去每次都要輸入密碼,更安全也更有效率。
1. 產生 SSH 金鑰
ssh-keygen -t ed25519 -C "you@example.com"
依照畫面提示按幾次 Enter,就會產生一對金鑰檔案:~/.ssh/id_ed25519
(私鑰)與 ~/.ssh/id_ed25519.pub
(公鑰)。
2. 啟動 SSH Agent 並加入金鑰
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
這樣就完成金鑰的準備工作。
3. 將公鑰加入 GitHub
首先將公鑰內容複製到剪貼簿:
cat ~/.ssh/id_ed25519.pub
複製顯示出來的完整字串,然後在 GitHub 執行下列步驟:
- 登入 GitHub
- 點選頭像 →「Settings(設定)」
- 左側選單中選擇「SSH and GPG keys」
- 點選「New SSH key」,貼上公鑰後儲存
4. 測試 SSH 連線
使用下列指令進行連線測試:
ssh -T git@github.com
第一次會詢問是否信任該主機,請輸入 yes
。
若成功,將出現類似以下訊息:
Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.
完成設定後的建議操作
當上述設定完成後,您就可以對 GitHub 上的儲存庫進行 clone(複製)、push(推送)、pull(拉取)等操作了。下一個章節將會詳細介紹如何建立並操作 GitHub 儲存庫。
4. 操作 GitHub 儲存庫
在 GitHub 上建立新的儲存庫
登入 GitHub 之後,首先要建立一個新的儲存庫。
建立步驟(透過瀏覽器操作)
- 點選 GitHub 首頁右上角的「+」圖示,選擇「New repository」
- 輸入以下資訊:
- Repository name(儲存庫名稱):例如
my-first-repo
- Description(可選):簡短說明
- Public / Private:選擇是否公開儲存庫
- 點選「Create repository」完成建立
建立完成後,畫面會顯示該儲存庫的 URL,可用於 clone 等操作。
複製現有的 GitHub 儲存庫(clone)
要將儲存庫複製到本地(Ubuntu 環境),請使用 git clone
指令:
git clone git@github.com:your-username/my-first-repo.git
※此為使用 SSH 連線的範例。如使用 HTTPS,URL 將有所不同。
執行上述指令後,當前資料夾中會建立一個名為 my-first-repo
的資料夾,並下載儲存庫的所有內容。
檔案修改、暫存(staging)、提交(commit)的流程
1. 新增或編輯檔案
例如,建立一個新的檔案:
echo "# 第一次使用 GitHub" > README.md
2. 將修改加入暫存區
git add README.md
暫存是指:選擇哪些修改要包含在下一次的提交中。
3. 提交修改內容
git commit -m "第一次提交:新增 README.md"
此操作會將變更儲存到本地端的 Git 歷史中。
將變更推送到 GitHub(push)
若要將本地的變更同步到 GitHub 上的遠端儲存庫,請使用 git push
:
git push origin main
※若預設分支不是 main
(如為 master
),請將指令中的分支名稱改為正確的名稱。
從 GitHub 拉取變更(pull)
當其他開發者對遠端儲存庫進行了修改,要將這些變更合併到本地儲存庫,可以使用下列指令:
git pull origin main
這樣可將遠端的修改內容整合到目前本地的分支中。
常用補充操作
- 檢查遠端儲存庫:
git remote -v
- 新增其他 GitHub 儲存庫:
git remote add origin git@github.com:your-username/another-repo.git
- 管理 README.md 或 .gitignore 等檔案也可使用相同流程操作。
5. 與 Visual Studio Code 的整合使用
VS Code 是進行 Git 操作的理想編輯器
在 Ubuntu 環境中使用 GitHub 時,搭配 Visual Studio Code(以下簡稱 VS Code) 能大幅提升開發效率。VS Code 是由 Microsoft 開發的開源程式碼編輯器,其與 Git 的整合功能非常強大。使用者可以透過圖形介面輕鬆進行 commit、push、比較差異等操作,是對初學者非常友善的工具。
在 Ubuntu 安裝 VS Code 的方法
在 Ubuntu 中,只需按照下列步驟,即可輕鬆安裝 VS Code。
1. 新增 Microsoft 軟體來源的金鑰
sudo apt update
sudo apt install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
2. 註冊軟體來源資訊
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
3. 安裝 VS Code
sudo apt update
sudo apt install code
安裝完成後,只需在終端機中輸入 code
即可啟動 VS Code 編輯器。
VS Code 內建 Git 擴充功能
VS Code 在安裝後就已內建與 Git 的整合功能,無需額外安裝外掛也可進行 Git 操作。若想進一步提升功能,推薦以下擴充套件:
- GitHub Pull Requests and Issues
→ 強化與 GitHub 的整合,可透過 GUI 管理 Pull Request 與 Issue。 - GitLens
→ 可視化每行程式碼的修改歷史,了解是誰、在什麼時間做了哪些更動。
在 VS Code 上進行基本的 Git 操作
讀取儲存庫
在終端機中進入已 clone 的專案資料夾,執行下列指令:
code .
這樣 VS Code 就會載入該資料夾並開啟專案。
檢查修改與提交(commit)
- 點選左側欄位的「源碼管理」圖示(類似分支的圖示)
- 查看修改過的檔案列表
- 點擊檔案可檢視差異內容
- 輸入提交訊息,點選「✓」圖示進行提交
推送(push)與拉取(pull)操作
- 可從側欄「…」選單選擇 Push 或 Pull
- 也可透過右下角的狀態列直接操作
可同時使用內建終端機操作
VS Code 內建終端機(快捷鍵 Ctrl + `
)讓您能夠同時使用圖形介面與指令列。您可以在 GUI 提交變更後,再透過終端機操作分支管理,靈活切換操作方式。
遇到問題時的建議解法
- 若出現 SSH 連線錯誤,請確認 VS Code 有正確讀取 SSH 金鑰
- 可能需要重新設定認證資訊,或使用 GitHub 的Personal Access Token(PAT) 進行認證
6. 常見問題排解指南
SSH 連線錯誤:「Permission denied (publickey).」
可能原因
- SSH 金鑰未正確產生或尚未註冊
- GitHub 帳戶中未新增公開金鑰
- SSH Agent 未正確載入金鑰
解決方法
- 確認 SSH 公開金鑰是否存在:
ls ~/.ssh/id_ed25519.pub
若不存在,可透過以下指令產生:
ssh-keygen -t ed25519 -C "your_email@example.com"
- 啟動 SSH Agent 並加入金鑰:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
- 將公開金鑰內容複製並新增到 GitHub:
cat ~/.ssh/id_ed25519.pub
→ 登入 GitHub,前往「SSH and GPG keys」頁面並貼上金鑰內容
- 測試連線:
ssh -T git@github.com
HTTPS 連線時的驗證錯誤:要求輸入使用者名稱或密碼
原因
- GitHub 已停用帳號密碼驗證,改為使用 Token 驗證
解決方法
- 前往 GitHub 發行 Personal Access Token:
→ https://github.com/settings/tokens
→ 勾選repo
權限並產生 Token - 進行 Git 驗證時,使用 GitHub 帳號作為使用者名稱,Token 字串作為密碼
- 若希望讓 Git 記住這些認證資訊,可啟用憑證快取功能:
git config --global credential.helper cache
錯誤訊息:「fatal: not a git repository」
原因
- 目前所在的資料夾不是 Git 儲存庫
解決方法
- 請先移動到已初始化的儲存庫目錄下:
cd ~/your-project-directory
- 或是初始化一個新的 Git 儲存庫:
git init
發生衝突(Conflict)時的處理
原因
- 當自己與他人同時修改相同檔案的相同區段時,Git 無法自動合併,會產生衝突
解決方法
- 執行
git pull
發生錯誤時,打開相關檔案進行手動合併 - 會看到類似以下標記:
<<<<<<< HEAD
你修改的內容
=======
對方修改的內容
>>>>>>> origin/main
- 手動選擇保留內容,移除標記並儲存
- 之後執行以下指令以完成合併:
git add .
git commit
錯誤訊息:「remote: Repository not found.」
原因
- 儲存庫的 URL 輸入錯誤
- 您沒有權限存取該 GitHub 儲存庫
解決方法
- 使用以下指令檢查目前的遠端 URL:
git remote -v
- 如果需要修正,可重新設定:
git remote set-url origin git@github.com:your-username/your-repo.git
這些錯誤常發生在初學者剛開始使用 Git/GitHub 時。不過只要了解原因與解法,就能冷靜應對。錯誤是學習的機會,請放心一步一步學會使用 Git!
7. 常見問題(FAQ)
Q1. Git 和 GitHub 有什麼不同?
A:
Git 是一種版本控制工具,可以在本地端管理原始碼的變更記錄;而 GitHub 則是一個線上平台,可用來儲存、管理並分享由 Git 管理的儲存庫。
- Git:可在本地離線進行版本管理
- GitHub:可將 Git 的資料儲存在雲端,並與他人協作
Q2. SSH 與 HTTPS 連線方式,我該選哪一個?
A:
通常建議使用SSH 連線,主要原因如下:
- 不需每次輸入帳號密碼(透過金鑰驗證)
- 安全性更高,也較適合長期使用
但若公司或網路環境有限制,也可以使用 HTTPS,請依實際情況選擇。
Q3. 如何在 Ubuntu 中切換多個 GitHub 帳號?
A:
您可以為每個帳號產生不同的 SSH 金鑰,並透過 SSH 設定檔來切換。
- 為每個帳號建立不同的金鑰
例如:~/.ssh/id_ed25519_work
,~/.ssh/id_ed25519_personal
- 編輯
~/.ssh/config
,加入如下設定:
Host github.com-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
Host github.com-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
- 在專案的
.git/config
或使用git remote set-url
切換 URL:
git remote set-url origin git@github.com-work:your-work-user/your-repo.git
Q4. 想用圖形介面(GUI)操作 Git,可以嗎?
A:
可以的!使用 Visual Studio Code 就能以圖形方式操作 Git。
您可以視覺化地完成 commit、push、查看差異、切換分支等操作,對新手非常友善。
Q5. 如果刪除了 GitHub 上的遠端儲存庫,本地的會怎樣?
A:
即使刪除了 GitHub 上的儲存庫,您本機的 Git 資料仍會保留。但如果執行 git push
,就會出現錯誤訊息。
若要重新連接新的遠端儲存庫,可以執行以下指令:
git remote set-url origin git@github.com:new-user/new-repo.git
Q6. 我不習慣使用終端機,有沒有全圖形介面的操作方式?
A:
您可以使用以下 GUI Git 工具,完全不需使用終端機:
- GitKraken
- Sourcetree(不支援 Linux,可嘗試透過 Wine 執行)
- Visual Studio Code(內建 Git 支援)
對 Ubuntu 使用者來說,VS Code 搭配 GitLens 擴充套件 是最推薦的組合,安裝簡單且使用順手。
Q7. Git 的提交紀錄可以追溯多久?
A:
原則上 Git 會保留從初始化以來的所有提交歷史。可使用以下指令檢視:
git log
如果只想查看特定檔案的歷史,則可使用:
git log path/to/file