Git 是分散式版本控制系統,GitHub 是基於 Git 的程式碼託管平台。本文記錄 Linux 下安裝 Git、建立 SSH 金鑰、配置 Git 使用者資訊、測試連線、初始化專案並推送至 GitHub 的完整流程,並解決推送被拒絕(需 -f 強制)等常見問題。
test,複製倉庫 URL:https://github.com/username/test.git 或 git@github.com:username/test.git。# Debian/Ubuntu
sudo apt-get install git git-core git-doc
# CentOS/RHEL
sudo yum install git
# Fedora
sudo dnf install git
ssh-keygen -t rsa -C "your_email@youremail.com"
# 一路 Enter(或設定密語),產生 ~/.ssh/id_rsa (私鑰) 與 id_rsa.pub (公鑰)
cat ~/.ssh/id_rsa.pub
# 複製輸出內容
# 瀏覽器:GitHub → Settings → SSH and GPG keys → New SSH key
# Title 隨意,Key 貼上公鑰內容 → Add key
git config --global user.name "lukeyan"
git config --global user.email "xxx@gmail.com"
# 此資訊會寫入每次提交的作者欄位
ssh -T git@github.com
# Hi username! You've successfully authenticated, but GitHub does not provide shell access.
# 出現此訊息即代表連線成功
cd /path/to/project
git init
git add . # 或指定檔案:git add file1 file2
git commit -m 'version 1.0'
git remote add origin https://github.com/username/test.git
# 或 SSH 方式:git remote add origin git@github.com:username/test.git
git push origin master -f
# -f 強制推送(遠端有 README 等檔案導致歷史不相容時需用)
# 首次推送建議:git push -u origin master

| 問題 | 解決 |
|---|---|
| Permission denied (publickey) | 確認公鑰已加入 GitHub、SSH agent 已載入私鑰 ssh-add ~/.ssh/id_rsa、~/.ssh 權限 700、私鑰 600 |
| rejected non-fast-forward | 遠端有本地無的提交(如 README),git pull --rebase origin master 後再 push,或強制 git push -f(謹慎) |
| SSL certificate problem | git config --global http.sslVerify false(臨時)或更新 ca-certificates |
| 大檔案推送失敗 | GitHub 單檔限制 100MB,使用 Git LFS:git lfs track "*.psd" |
~/.ssh/config 設定 Host github.com-user1 指定 IdentityFile。git config --global commit.gpgsign true。gh repo create、gh pr create 等指令加速工作流。Linux SSH 使用 RSA 金鑰對實現免密碼登入完整設定教學
Gentoo Linux 安裝 KDE Plasma 5 完整配置指南
Linux cp 指令完整教學:檔案/目錄複製、屬性保留、備份控制、稀疏檔處理、跨檔案系統複製實戰
Linux 自動生成 MAC 地址:Shell、Python、Perl、Ruby 四語言實現與效能對比
Linux 查看 MariaDB 伺服器版本三種方法:登入後顯示、status 指令、套件管理器查詢套件版本
Unix 系統卸載 GDB 調試器:make uninstall 失效的替代方案