Git Push大檔案報錯後如何撤回

2022-01-22 07:05:52 字數 1338 閱讀 1427

昨晚在提交乙個專案**時,不小心把資料庫備份檔案也一起commit了;到最後push的時候報錯了。最後弄了半天解決了,在此記錄下。

如下圖,檔案有108m。

專案放在第三方託管平台上,根據提示檢視了原因。後來看了下像單個檔案最大不超過50m。

網上找處理方法,有很多種。比如刪除提交過大的檔案:git filter-branch --tree-filter 'rm -f 檔名' head但是這命令我這邊執行不行報錯:fatal: ambiguous argument 'database_bak.sql.gz'': unknown revision or path not in the working tree.

還有說刪除git 緩衝區檔案git rm --cached "檔案路徑"我都執行了不行。

還有撤回commit:git reset --soft head^此命令也無效。

實際做法有兩種

第一種撤回commit。

撤回commit的真正做法應該是

1、先執行git log,檢視每次commit的id。首先切換到對應分支目錄下。然後:git log

因為出現問題後會嘗試各種處理方式,有時候commit會有多次提交。這裡要撤回所有本次和大檔案提交的commit。

然後依次執行:gti reset 40cf738e636ab0ccfd60cd14b6494fd6a848113b有多個commit記錄id就執行多少次。

等你執行完後,你看git檔案狀態。你的大文那個綠色勾會消失;證明這檔案沒有被新增一樣。這個時候就已經好了。

當然也可以通過小烏龜圖形化的操作,直接撤回到某個提交記錄上。具體就是右鍵show log。然後reset master to this

第二種回滾到前個版本 revert

git revert -n f330e468edeffe32f7bc8216038b069f21cae169

revert 會回滾到之前提交的某個版本,如果前後兩個版本有修改同乙個檔案;此操作會覆蓋上次版本的檔案。

Qt讀取大檔案報錯

編譯器 mingw 作業系統 win10 64位 在專案中使用qfile readall 讀取檔案時,有些檔案會直接導致程式崩潰。通過除錯qt原始碼,發現在分配記憶體的時候丟擲異常bad alloc,錯誤的記憶體分配 查資料了解到32位程式可申請的最大堆記憶體不會超過2g,受作業系統等各方面因素影響...

git push 推送大檔案失敗的處理辦法

不小心把資料庫備份檔案放到git目錄裡了,導致無法上傳 按照文中一開始說的去做,可還是無法成功。後來看到這句話 如果做了這幾步你push的時候還是報和開始的時候一樣的錯,那說明這個檔案你不是最近一次commit時新增的,而是在之前commit過很多次了,這就需要把關於這個檔案的所有歷史commit記...

git push提交成功後如何撤銷回退

我們在使用git進行版本控制時,有可能會出現這種情況。git push後發現提交的內容不是想要的,這時候我們怎麼做呢,提交上去的內容是沒有刪除按鈕的 比如github,或碼雲 所以我們需要一些手段將提交上去內容撤銷下來。首先將本地的內容回退到自己想要的版本。回退版本我一般使用 git reset 其...