繁体   English   中英

从远程Git仓库删除所有文件和历史记录,而不删除仓库本身

[英]Delete all files and history from remote Git repo without deleting repo itself

如果有人能告诉我如何删除我的git存储库中的每个文件/文件夹而不实际删除存储库本身,我将不胜感激。 我想删除与这些文件相关的所有历史记录。

正如我在回答中解释删除或删除远程Git仓库中的所有历史记录,提交和分支? ,你也可以通过以下方式实现与Ceilingfish的答案相同的事情(即删除远程仓库中的所有引用/分支/标签):

  1. 使用初始提交创建新的空仓库:

     mkdir new cd new echo "This is the README" > README.md git init git add . git commit -m "Add README.md (initial commit)" 
  2. 添加远程仓库作为原产地:

     git remote add origin <url-to-remote> 
  3. 镜像推送到远程:

     git push origin --mirror 

这将删除远程仓库中的所有引用/分支/标签 ,任何悬挂提交最终都可能被垃圾收集。 git push官方Linux Kernel Git文档 (强调我的):

 --mirror 

而不是将每个引用命名为push,指定将refs/下的所有引用(包括但不限于refs/heads/refs/remotes/refs/tags/ )镜像到远程存储库。 新创建的本地引用将被推送到远程端,本地更新的引​​用将在远程端强制更新,并且已删除的引用将从远程端删除

您可以从这样的存储库远程删除分支

git push origin :branchname

如果您有任何标签,可以删除它们,如下所示:

git push origin :refs/tags/tagname

这假设你有一个远程设置为github称为origin

但是,这会在您的计算机上留下本地标签/分支。

这就是我所做的

git rm -r -f -q

git commit

git push

然后你必须手动删除文件,git rm从repo中删除文件,但不从文件系统中删除

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM