$ git lfs install
設定檔在 ~/.gitconfig裡,多了這幾行
[filter "lfs"]
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
clean = git-lfs clean -- %f
$ git lfs track "*.mp4"
若要一次追蹤多個副檔名檔案
$ git lfs track "*.mp4" "*.mp3" "*.mkv" "*.wav" "*.wmv" "*.3gp" "*.ppt" "*.pptx" "*.jpg" "*.png" "*.pdf" "*.rar" "*.zip"
track完後,資料夾底下就多了.gitattributes檔,內容為:
接下來就是平常熟悉的上傳步驟
$ git add *...
若要一次追蹤多個副檔名檔案
$ git lfs track "*.mp4" "*.mp3" "*.mkv" "*.wav" "*.wmv" "*.3gp" "*.ppt" "*.pptx" "*.jpg" "*.png" "*.pdf" "*.rar" "*.zip"
track完後,資料夾底下就多了.gitattributes檔,內容為:
*.mp4 filter=lfs diff=lfs merge=lfs -text$ git add .gitattributes
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.wmv filter=lfs diff=lfs merge=lfs -text
*.3gp filter=lfs diff=lfs merge=lfs -text
*.ppt filter=lfs diff=lfs merge=lfs -text
*.pptx filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
接下來就是平常熟悉的上傳步驟
$ git add *...
$ git commit ...
推送大型檔案
$ git push lfs
推送剩餘(大型檔案以外)的檔案
$ git push
註:已經上傳在github(遠端)中的大型檔案,沒辦法被以上方法追蹤到。
當下載的時候,一樣是平常熟悉的下載步驟
$ git clone ... 或 $ git pull
但那些追蹤中的大型檔案不會被完全下載下來,
只會留有檔名 及以下的特徵資料(133~134 Bytes),所以沒辦法開啟
註:已經上傳在github(遠端)中的大型檔案,沒辦法被以上方法追蹤到。
當下載的時候,一樣是平常熟悉的下載步驟
$ git clone ... 或 $ git pull
但那些追蹤中的大型檔案不會被完全下載下來,
只會留有檔名 及以下的特徵資料(133~134 Bytes),所以沒辦法開啟
version https://git-lfs.github.com/spec/v1
oid sha256:2df1f9d299ad32c55d29880629681777bc9e1c227c1ba8a46dae4a3a44db8652
size 50024
要下lfs指令才會開始下載大型檔案同步到本地端。
$ git lfs pull
下載大型檔案前 / 下載大型檔案後 大小比較
搬遷已有大型文件到git lfs
如果已經有大型文件不小心先上傳到git了
後來想讓lfs控管的話
$ git lfs migrate import --include="*.mp4,*.pdf" --everything
再次檢查git lfs追蹤的文件
$ git lfs ls-files
強行推送到遠端儲存庫
$ git push origin --force
後悔了,要刪除git lfs、改為原本的git方式的話:
$ git lfs uninstall
刪除歷史log
$ git filter-branch -f --prune-empty --tree-filter ' git lfs checkout git lfs ls-files | cut -d " " -f 3 | xargs touch git rm -f .gitattributes git lfs ls-files | cut -d " " -f 3 | git add ' --tag-name-filter cat -- --all
最後仍是
$ git add .
$ git commit -m "..."
$ git push -f
但要注意的是,GitHub 會阻止大小超過100MB的文件
否則會出現
! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'github.com:gjlmotea/...