gpt4 book ai didi

git - 从远程 Git 存储库中删除或移除所有历史记录、提交和分支?

转载 作者:IT王子 更新时间:2023-10-29 01:15:03 29 4
gpt4 key购买 nike

我已经阅读并尝试了很多 Git 命令建议和讨论,持续了好几天。似乎确实没有简单、全面的方法来使远程 Git 存储库完全清空——没有分支、没有引用、没有对象、没有文件、什么都没有

是的,我知道可以删除并重新创建存储库——如果有人对源具有那种权限(我没有),但这不是重点。它是如何完成的?什么样的 Git 命令组合才能真正做到这一点,让 repo 处于原始状态 准备好接收我们希望推送到其中的任何内容,并且基本上没有大小(或最小大小的 a处女 repo )

不要告诉我这不应该做,或者我们必须通知所有用户等等。这些我都知道。 我只想重新开始

最佳答案

您可能想尝试使用 --mirror flag 推送一个空的本地存储库(强调我的):

--mirror

Instead of naming each ref to push, specifies that all refs under refs/ (which includes but is not limited to refs/heads/, refs/remotes/, and refs/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. This is the default if the configuration option remote.<remote>.mirror is set.

如果您的存储库位于 GitHub 上,如果 master,您将收到此错误尝试推送时设置为默认分支:

$ mkdir practice; cd practice;
$ git init; git remote add origin git@github.com:user/practice.git;

$ git push origin --mirror
remote: error: refusing to delete the current branch: refs/heads/master
To git@github.com:user/practice.git
! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to 'git@github.com:user/practice.git'

我通过进行初始提交然后推送来解决这个问题。

强制性警告:当然,这将完全清除您远程仓库中的所有历史记录和提交——所有引用、所有分支、所有标签等。确保这确实是什么你想做什么。当然,您始终可以在执行此操作之前对您的远程存储库进行备份克隆,以防您出于任何原因想要保留它。

另请注意,实际上不会立即删除任何提交。它们将变成悬挂 提交,这意味着它们无法从分支访问。最终他们将通过 Git 存储库收集垃圾,但如果您有权访问远程存储库,则可以使用 git gc 手动启动垃圾收集。 .

关于git - 从远程 Git 存储库中删除或移除所有历史记录、提交和分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18112966/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com