如何刪除錯誤提交的 git 大檔案

2022-01-15 08:08:35 字數 1280 閱讀 9046

早上小夥伴告訴我,他無法拉下**,我沒有在意。在我開始寫**的時候,發現我的 c 盤炸了。因為我的磁碟是蘇菲只有 256g 放了**就沒空間了,於是我查詢到了原來是我的**占用了居然有 2000+m ,尋找了很久才發現,原來我小夥伴jake傳了乙個壓縮包上去,乙個1g的包。

那麼如何把這個壓縮包徹底從 git 刪除?

如果需要刪除 git 的歷史記錄,使用方法很簡單,請看 git如何永久刪除檔案(包括歷史記錄) - shines77 - 。當然這個方法需要很長時間,因為提交大檔案的時間不長,所以可以使用walterlv的方法 徹底刪除 git 倉庫中的檔案避免占用大量磁碟空間 - walterlv

於是遠端倉庫刪好了,但是本地倉庫還是有小夥伴拉下來,於是如何讓本地的小夥伴可以使用最新的倉庫?

**就是

git

fetch-f

-pgitcheckout

devgit

reset

origin/dev--

hard

gitreflog

expire--

expire=now--

allgitgc-

-prune=now

第一句**git fetch -f -p的作用就是從本地拿到遠端最新分支,覆蓋本地存放的遠端分支

第二句實際上因為主要開發分支就是 dev 分支,小夥伴就是把大檔案合併到這個分支,所以需要切換到這個分支。如果你不小心把大檔案提交其它的分支,記得切換的就是你提交的分支。

如果提交大檔案只是在自己的分支,並且放到了遠端分支,那麼合併到遠端開發分支,那麼只需要刪除自己遠端分支就好了,不需要繼續往下做。

第三句git reset origin/dev --hard是把自己的本地 dev 分支覆蓋,使用遠端的分支,如果開發分支不是 dev ,那麼請用其他的分支。

接下來是如果在開發之前已經拉下存在大檔案的開發分支並且在他之後有提交,那麼需要建立乙個新的分支在合併之前。

然後把提交 pick 到新分支

刪除原來分支,這樣就好

最後的命令是使用 gc 清掉這個提交

這時候檢視自己的git 資料夾,如果資料夾還是那麼大,那麼說明還有乙個分支是引用提交大檔案,需要自己去看一下是哪個分支。

這個命令需要所有小夥伴執行,不然有乙個小夥伴提交了包含大檔案的提交,那麼剛才做的就是白做了。

需要說明,git 如果提交乙個檔案,然後刪除他,繼續提交,那麼這個檔案是存在 git 中,需要使用特殊的命令才可以刪除。

感謝walterlv

git 刪除錯誤提交

起因 不小新把記錄了公司伺服器ip,賬號,密碼的檔案提交到了git 方法 git reset hard git push origin head force 其他 根據 soft mixed hard,會對working tree和index和head進行重置 git reset mixed 此為預...

回滾與刪除錯誤提交

剛才在windows上新開始金融交易演算法的專案,增加了gitignore以後想著跟mac上一樣把暫存區清空再重新儲存。沒想到windows上有些命令和mac上不一樣,一下子把本地所有檔案全刪了。然後自然就是回滾到上乙個,這一步沒問題。之後怎麼刪除錯誤提交?git push f或者git push ...

碼雲中誤提交大檔案以後如何撤銷

我有乙個大小超過700mb的檔案被錯誤地提交了,結果導致git push的操作失敗.提示資訊如下 git push counting objects 3,done.delta compression using up to 48 threads.compressing objects 100 2 2...