如果有人能告诉我如何在不删除git仓库本身的情况下删除git仓库中的每个文件/文件夹,我将不胜感激。我想删除与这些文件相关的所有历史记录。
如果有人能告诉我如何在不删除git仓库本身的情况下删除git仓库中的每个文件/文件夹,我将不胜感激。我想删除与这些文件相关的所有历史记录。
如我在此答案中解释删除或删除远程Git存储库的所有历史记录,提交和分支?,你也可以通过以下方法实现与Ceilingfish的答案相同的目标(即删除远程存储库中的所有引用/分支/标记):
Create new empty repo with initial commit:
mkdir new
cd new
echo "This is the README" > README.md
git init
git add .
git commit -m "Add README.md (initial commit)"
Add remote repo as origin:
git remote add origin <url-to-remote>
Mirror push to remote:
git push origin --mirror
这将会删除远程代码仓库中的所有引用、分支和标签,同时任何悬空提交可能最终会被垃圾回收。以下是来自 官方 Linux Kernel Git文档关于 git push
的说明(重点是我的):
--mirror
Instead of naming each ref to push, specifies that all refs under
refs/
(which includes but is not limited torefs/heads/
,refs/remotes/
, andrefs/tags/
) be mirrored to the remote repository. Newly created local refs will be pushed to the remote end, locally updated refs will be force updated on the remote end, and deleted refs will be removed from the remote end.
git push origin :branchname
如果你有任何标签需要删除,可以像这样操作:
git push origin :refs/tags/tagname
这里假设您已经设置了一个名为origin的github远程仓库。
但是这将保留计算机上本地的标签/分支。
git branch cleanerbranch
),删除其中所有的文件,然后提交更改(commit)。接着将该分支推送到远程仓库(git push origin cleanerbranch:master
)。 - Ceilingfish这是我所做的:
git rm -r -f -q
git commit
git push
然后你需要手动删除文件,git rm 从仓库中删除文件但不从文件系统中删除。
git init
创建一个空仓库。git remote add origin <远程地址>
git checkout -b main
git push origin --mirror