删除/重置远程主 Git 存储库
Posted
技术标签:
【中文标题】删除/重置远程主 Git 存储库【英文标题】:Delete/reset a remote master Git repo 【发布时间】:2013-05-11 15:29:08 【问题描述】:我们有一个 Assembla 远程仓库。 Assembla 现在不提供免费的私人回购,所以我们想重新使用我们的旧回购之一。该 repo 有一个 master 分支和很多文件/提交。
我们怎样才能摆脱一切,包括所有文件和历史,让我们重新开始一个新项目?
首先,我有一个最新的 repo 拉取。
我因此尝试删除远程主分支:
git push origin :master.
这给出了错误:
remote: error: 默认情况下,拒绝删除当前分支,因为下一个 remote: error: 'git clone' 不会导致任何文件被检出,导致混乱。
所以我尝试创建一个新分支,推送它,然后从另一个分支删除 master,因此:
git checkout -b tempy
git push origin tempy
git push origin :master
我得到同样的错误。
我可以切换回master,在本地删除所有文件,然后提交并推送,但他留下了很多不需要的历史记录。
有什么想法吗?
【问题讨论】:
【参考方案1】:最简单的答案是删除/删除您当前的项目并开始一个新项目。
或者唯一的其他方法是 force
推送
rm -rf .git
git init
git add .
git commit -m "Initial commit"
git remote add origin <your-assembla-git-url>
git push -u --force origin master
【讨论】:
按项目,你的意思是回购吗?我不能删除 repo,因为 assmebla.com 不允许你再创建新的(很好,但只有 2 个用户)。我只需要一种删除文件和理想历史的方法。通常可以删除远程分支,所以我认为我可以删除主分支,但似乎不允许这样做。 @JohnLittle 我已经更新了我的答案,这将删除您的历史记录并在那里推送一个空白。 嗨,奥利弗,尝试了你的解决方案。尝试推送时,显示“远程错误:拒绝非快进 refs/heads/master(您应该先拉)...![远程拒绝] master -> master (non-fast-forward) error: failed to将一些参考推送到 'git@... 任何建议表示赞赏... 哈哈,有效! assembla.com 中有一个设置是“允许 --force push”。勾选了这个,它起作用了!回到一个裸仓库。奥利弗是 git 上帝。我正在写这个食谱!【参考方案2】:git checkout master
git reset --hard <commit> # where commit is SHA of first commit in history
git push origin master
或从本地 repo 中完全删除 .git
并重做 git init
,请参阅 https://***.com/a/16502899/368552
【讨论】:
以上是关于删除/重置远程主 Git 存储库的主要内容,如果未能解决你的问题,请参考以下文章