[英]How to remove all but the unversioned git files from a directory?
我想把很多文件放在一個存儲庫中。 但是,它們的大小超過 10GB。 它們是很多文件。 總存儲空間約為 13GB。
我正在考慮解決這個問題的方法。 現在我正在考慮創建一個單獨的存儲庫,我可以在其中推送其余文件。 但是因為有很多文件,手動操作太繁瑣了。
有什么方法可以查看哪些文件沒有添加到 git 中(也許它們被稱為未版本控制的文件)? 然后刪除所有未添加的文件。 然后在同一個文件夾中初始化一個新的 repo 並將其余的推送到另一個存儲庫。
請讓我知道這是否可行。 如果存在,我願意在 git 周圍使用 shell 或 python 包裝器。
這些文件彼此無關,因此將它們保存在兩個單獨的存儲庫中並不是什么大問題。
要查找尚未提交的文件:
git status --porcelain --untracked-files --ignored
這將向您顯示所有更改的文件路徑,包括.gitignore
文件路徑,以及下降到目錄中的文件路徑。 如果您的 repo 中沒有掛起的更改,這應該只是未跟蹤/忽略的文件。 行的開頭會有 3 個字符,例如??
或者!!
代表你可以剝離的狀態| cut -c 4-
| cut -c 4-
除非你想解析它們以區分不同的狀態。
從那里 - 將這些文件移動到不同的目錄會更容易(而不是移動所有其他文件)。
git ls-tree --full-tree -r --name-only HEAD
刪除所有跟蹤的文件:
git ls-tree --full-tree -r --name-only HEAD |
xargs git rm
我的方法是純粹使用 Git:
git status # Make sure you don’t have any change in already tracking files
cat .gitignore # If you ignore some files that you want to actually index, modify this file
git add . # Adding all untracked files
git commit # Take note of this commit hash, abcde123
cd ../another_new_repo
git init
git fetch ../old_repo
git cherry-pick abcde123
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.