在git中,可以在本地倉庫的目錄下調(diào)用命令行刪除根目錄下的“.git”文件夾,語法為“find . -name ".git" | xargs rm -Rf”;將本地倉庫清除之后,可以利用“rm -rf + github倉庫地址”命令在github的對應(yīng)庫中到setting刪除庫。
本文操作環(huán)境:Windows10系統(tǒng)、Git2.30.0版、Dell G3電腦。
怎么刪除.git目錄
1.刪除.git文件夾
- 在本地倉庫的目錄下調(diào)用命令行刪除根目錄下的.git文件夾,輸入
find . -name ".git" | xargs rm -Rf # OR rm -rf .git
這樣本地倉庫就清除了,像下面這樣,master不見了。
2. 手動刪除掉殘留的.git文件
- 在命令行中輸入
rm -rf + github
倉庫地址,例
rm -rf https://github.com/xxx/xxx.git
-
在 github 的對應(yīng)的庫中到 setting 刪除庫。
擴(kuò)展知識:
2..git
文件過大!刪除大文件
在我們?nèi)粘J褂肎it的時候,一般比較小的項(xiàng)目,我們可能不會注意到.git 這個文件。
其實(shí), .git文件主要用來記錄每次提交的變動,當(dāng)我們的項(xiàng)目越來越大的時候,我們發(fā)現(xiàn) .git文件越來越大。
很大的可能是因?yàn)樘峤涣舜笪募绻闾峤涣舜笪募?,那么即使你在之后的版本中將其刪除,但是,
實(shí)際上,記錄中的大文件仍然存在。
為什么呢?仔細(xì)想一想,雖然你在后面的版本中刪除了大文件,但是Git是有版本倒退功能的吧,那么如果大文件不記錄下來,
git拿什么來給你回退呢?但是,.git文件越來越大導(dǎo)致的問題是: 每次拉項(xiàng)目都要耗費(fèi)大量的時間,并且每個人都要花費(fèi)
那么多的時間。。
git給出了解決方案,使用git branch-filter
來遍歷git history tree
, 可以永久刪除 history 中的大文件,達(dá)到讓.git文件瘦身的目的。
下面給出步驟(以下步驟非常危險,操作需謹(jǐn)慎!別把公司刪沒了哈哈)
首先找出git中前五大的文件:git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5
執(zhí)行的結(jié)果實(shí)際上是這個樣子的:
第一行的字母其實(shí)相當(dāng)于文件的id,用以下命令可以找出id 對應(yīng)的文件名:git rev-list --objects --all | grep 8f10eff91bb6aa2de1f5d096ee2e1687b0eab007
好了,最大的文件找到了。怎么刪除呢?
git filter-branch --index-filter 'git rm --cached --ignore-unmatch <your-file-name>' rm -rf .git/refs/original/ git reflog expire --expire=now --all git fsck --full --unreachable git repack -A -d git gc --aggressive --prune=now git push --force [remote] master
首先,里面最重要的兩條命令是 git filter-branch
和 gc
, filter-branch 真正在清理,但是只運(yùn)行它也是沒用的,需要再刪除備份的文件,重新打包之類的,最后的gc命令,用來收集產(chǎn)生的垃圾,最終清除大文件。
推薦學(xué)習(xí):《Git教程》