如果有人能告诉我如何删除git存储库中的每个文件/文件夹而不实际删除存储库本身,我将不胜感激。我想删除与这些文件相关的所有历史记录。
答案 0 :(得分:72)
正如我在this answer中向Delete or remove all history, commits, and branches from a remote Git repo?解释的那样,您还可以通过执行以下操作来实现与Ceilingfish's answer相同的功能(即删除远程仓库中的所有引用/分支/标记) :
使用初始提交创建新的空仓库:
mkdir new
cd new
echo "This is the README" > README.md
git init
git add .
git commit -m "Add README.md (initial commit)"
将远程仓库添加为原产地:
git remote add origin <url-to-remote>
镜像推送到远程:
git push origin --mirror
这将 删除远程仓库中的所有引用/分支/标记 ,任何悬挂提交最终都可能被垃圾回收。来自official Linux Kernel Git documentation for git push
(强调我的):
--mirror
指定
refs/
下的所有引用(包括但不限于refs/heads/
,refs/remotes/
和refs/tags/
),而不是将每个引用命名为push。到远程存储库。新创建的本地引用将被推送到远程端,本地更新的引用将在远程端强制更新, 已删除的引用将从远程端删除 。 / p>
答案 1 :(得分:9)
您可以从像
这样的存储库远程删除分支git push origin :branchname
如果您有任何标签,可以删除它们:
git push origin :refs/tags/tagname
这假设你有一个远程设置为github,名为origin
但是,这会在您的计算机上留下本地标签/分支。
答案 2 :(得分:5)
这就是我所做的
git rm -r -f -q
git commit
git push
然后你必须手动删除文件,git rm从repo中删除文件但不从文件系统删除