GitHub git push超過100MB大文件失敗(write error: Broken pipe)完美解決


問題

  在使用git push推送大文件(超過了100MB)到GitHub遠程倉庫時提示異常,異常信息如下:

fatal: sha1 file '<stdout>' write error: Broken pipe

fatal: the remote end hung up unexpectedly

通過查閱了一些資料,我發現是因為GitHub對提交的文件大小做了限制,GitHub會阻止超過100 MB的推送(單文件),檢查了一下我提交的文件中有一個超過200MB的文件。

GitHub官方說明👉

解決方案一

1、將本地 http.postBuffer 數值調整到GitHub服務對應的單次上傳大小配置

注意:我這里設置的是500MB(大家可以根據自己的需要設置)。

http.postBuffer默認單位為B(字節),所以500MB=1024*1024*500。

# 方法一:全局配置
git config --global http.postBuffer 524288000

或者

# 方法二:當前倉庫配置
git config http.postBuffer 524288000

2、查看 http.postBuffer數值是否設置成功

# 查看當前的Git配置
git config --list

3、最后在重新使用git push推送代碼到GitHub遠程倉庫中

git push

4、最后如果發現還是無法提交可以使用git命令撤回commit提交,找到超過100MB的文件進行刪除

#查詢提交日志,獲取提交head
git log

#
撤銷commit到指定的版本,本地修改的文件不會變動
git reset --soft 77e3f9eb02b96d7d2ea5def048fb4f1d07f19868

找到你提交的文件中超過100MB的文件進行刪除,然后重新添加,提交即可。

 

解決方案二

安裝 Git 大文件存儲(Git LFS)

什么是LFS?

  Git LFS(Git Large File Storage),即Git大文件存儲技術,相當於Git的一種插件式增強工具,簡單講,它是在Git倉庫使用這些文件的 指針代替 實際文件,而把實際文件存儲在遠程端LFS服務器,同時在本地倉庫中實時追蹤這些文件的變動。

1、下載Git Large File Storage(Git LFS)

Git LFS Windows Installer

2、在您的計算機上,找到下載的文件雙擊安裝

  雙擊名為git-lfs-windows-1.XXexe 的文件,其中 1.XX 替換為您下載的 Git LFS 版本。當你打開這個文件時,Windows 會運行一個安裝向導來安裝 Git LFS。

3、打開Git Bash,驗證安裝是否成功

$ git lfs install
> Git LFS initialized.

4、將您當前的工作目錄更改為您希望與 Git LFS 一起使用的現有存儲庫

5、要將存儲庫中的文件類型與 Git LFS 關聯,請輸入git lfs track后跟要自動上傳到 Git LFS 的文件擴展名的名稱

例如,要關聯.psd文件,請輸入以下命令:

$ git lfs track "*.psd"
> Adding path *.psd

您想與 Git LFS 關聯的每種文件類型都需要添加git lfs track此命令修改存儲庫的.gitattributes文件並將大文件與 Git LFS 關聯。

提示:我們強烈建議您將本地.gitattributes文件提交到您的存儲庫中。依賴與 Git LFS 關聯的全局.gitattributes文件可能會在為其他 Git 項目做出貢獻時導致沖突。 

6、將文件添加到與您關聯的擴展名匹配的存儲庫

$ git add path/to/file.psd

7、提交文件並將其推送到 GitHub

$ git commit -m "add file.psd"
$ git push

您應該會看到相關文件上傳的進度信息:

> Sending file.psd
> 44.74 MB / 81.04 MB 55.21 % 14s
> 64.74 MB / 81.04 MB 79.21 % 3s

參考文章

https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage

https://gitee.com/help/articles/4235#article-header0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM