680 字
3 分鐘
GitHub 不接受 100MB 以上檔案?使用 Git LFS 解決大檔案 Commit 問題
結論
當 GitHub 因檔案超過 100MB 而拒絕 Push 時,可透過 Git LFS(Large File Storage)管理大型檔案,即使使用 TortoiseGit 也能正常 Commit 與 Push。
適合用在哪裡
- 使用 GitHub 管理大型檔案
- 專案包含壓縮檔、安裝包、模型檔案等大容量檔案
- 使用 TortoiseGit 進行版本控制
- 遇到 GitHub 100MB 檔案限制
- 需要將既有大型檔案轉換為 Git LFS 管理
流程步驟
1. 安裝 Git LFS
- 從 Git LFS 官網下載並安裝
- 安裝完成後只需初始化一次
# 初始化 Git LFSgit lfs installGitHub 雖然支援 Git LFS,但本機必須先安裝並啟用,否則無法正常追蹤大型檔案。
2. 將既有大檔案轉換為 Git LFS
如果專案中已經存在超過 100MB 的檔案,建議直接使用 Git LFS Migration 功能。
# 將所有超過 100MB 的檔案轉換為 LFSgit lfs migrate import--everything--above=100MB此指令會掃描整個 Repository 歷史紀錄,並將符合條件的大檔案改為 Git LFS 管理,不需指定副檔名。
適合:
- 舊專案
- 已經 Commit 過大型檔案
- 不確定有哪些檔案超過限制
3. 指定特定副檔名使用 Git LFS
若專案固定會放入特定格式的大檔案,也可以直接設定追蹤規則。
# 追蹤 7z 檔案git lfs track"*.7z"
# 追蹤 tar.gz 檔案git lfs track"*.tar.gz"執行後會自動更新 .gitattributes,後續新增的檔案都會自動使用 Git LFS 儲存。
4. 使用 TortoiseGit Commit 與 Push
完成 Git LFS 設定後,即可回到 TortoiseGit 操作。
- 右鍵 → TortoiseGit → Commit
- 確認
.gitattributes已加入版本控制 - Commit
- Push 到 GitHub 此時大型檔案實際上會存放於 Git LFS Storage,而 Git Repository 僅保留指標檔,因此不會再遇到 GitHub 的 100MB 限制。
補充
常見錯誤
| 錯誤訊息 | 原因 |
|---|---|
| File exceeds GitHub’s file size limit of 100 MB | 檔案未使用 Git LFS 管理 |
| Git LFS not installed | 本機尚未安裝 Git LFS |
| Push 被拒絕 | Repository 歷史紀錄中仍存在超大檔案 |
實務建議
- 新專案可直接設定常用副檔名追蹤規則
- 舊專案建議使用
git lfs migrate import - 若已 Push 過超大檔案,需重新改寫歷史紀錄後再 Push
指令 / 範例整理
Click to expand
# 安裝後初始化git lfs install
# 將所有超過 100MB 檔案轉換為 LFSgit lfs migrate import--everything--above=100MB
# 追蹤指定副檔名git lfs track"*.7z"git lfs track"*.tar.gz"
# 查看目前追蹤規則git lfs track
# 查看 LFS 管理檔案git lfs ls-files收尾
GitHub 的 100MB 限制並不代表大型檔案無法納入版本控制,透過 Git LFS 搭配 TortoiseGit,即可用原本的操作流程管理大型檔案。
GitHub 不接受 100MB 以上檔案?使用 Git LFS 解決大檔案 Commit 問題
https://joyceowo.github.io/posts/23ba78ea09fa81a49dead618ac617265/