從git中 從所有提交記錄中刪除檔案

2021-07-08 14:52:44 字數 1443 閱讀 8193

將之前提交過的檔案從版本中刪除

git filter-branch --help
解釋

git-filter-branch - rewrite branches

語法

git filter-branch 

[--env-filter ]

[--tree-filter ]

[--index-filter ]

[--parent-filter ]

[--msg-filter ]

[--commit-filter ]

[--subdirectory-filter ]

[--prune-empty]

[--original ]

[-f | --force]

[--]

[…]

示例

git filter-branch

--index-filter

'git rm --cached --ignore-unmatch b.c'

-f

–tree-filter表示歷史提交。

–index-filter

–msg-filter表示修改提交資訊,原提交資訊從標準輸入讀入,新提交資訊輸出到標準輸出。

-f是忽略備份。不加這個選項第二次執行這個命令時會出錯,意思是 git 上次做了備份,現在再要執行的話得處理掉上次的備份。

$ du -hs

雖然原檔案已經刪除了,但檢視檔案大小還是包括刪除的檔案,

執行以下git語句則節省大小

git ls-remote

. rm -rf

.git/logs

git reflog --

all

git prune

git gc

du -hs

在window 命令列行執行有問題,建議在bash.exe中執行,

不要開啟多個bash,會出現沒許可權的問題

cd demo 

#bash.exe

#git filter-branch

--index-filter

'git rm --cached --ignore-unmatch demo2.txt'

-f#git filter-branch

--tree-filter

'git rm --cached --ignore-unmatch demo2.txt'

-fgit ls-remote

. rm -rf

.git/logs

git reflog --

all

git prune

git gc

du -hs

參考

git刪除所有歷史提交記錄

把舊專案提交到git上,但是會有一些歷史記錄,這些歷史記錄中可能會有專案密碼等敏感資訊。如何刪除這些歷史記錄,形成乙個全新的倉庫,並且保持 不變呢?1.checkout git checkout orphan latest branch 2.add all the files git add a 3...

從Git版本控制中刪除檔案

參考 如果你想把乙個檔案從版本控制中移除,並且保留本地的檔案,首先需要把這個檔案加入到gitignore檔案中。然後執行以下命令就可以了。git rmfile path cached以上命令將file path所代表的檔案從版本控制中刪除,並保留本地檔案,此外還要進行commit操作才能將伺服器端的...

git刪除所有提交歷史記錄

以下方法是在當前的分支下新建乙個分支,然後把之前分支刪除,接著把新建的分支重新命名為原分支名稱,最後把分支強制推送到遠端 1.checkout git checkout orphan latest branch 2.add all the files git add a 3.commit the c...