如何移除Git仓库并推送新的仓库

7

如何清除存储库并推送新的代替它。

我的项目大小超过2GB,我检查了.git文件夹,它的大小为1.5GB,我尝试删除.git文件夹后,执行git init和强制推送项目,但远程存储库的大小没有改变,我的步骤:

git init
git add . 
git commit -m "First Push"
git remote add origin http://Url_here
git push -f origin master

如何替换仓库内容?
3个回答

12

以root身份登录,删除.git文件夹

sudo rm -R .git

以正确的用户身份登录

git init
git remote add origin https://[name]@bitbucket.org/frankdesign/[new-repo].git
git add .
git commit -m "new clean repo"
git push --force origin master

显然这不起作用。旧的提交仍然在服务器上。 - rjurney

3

几种选项:

  • 前往服务器存储库,删除旧存储库并创建新存储库。
    在当前存储库中推送新分支

  • 创建一个新的孤立分支(orphan branch),然后将其推送。
    现在在您的服务器上运行git gc --aggressive --prune=now以清除所有旧提交

  • 使用filter branch清理所有旧内容

  • 使用rebase -i将所有提交合并为一个,然后推送它

  • 使用git subtree split从现有代码创建一个新项目。类似于git filter-tree,使用正确的代码将产生相同的结果。


我可以通过强制推送到同一代码库来更改内容吗? 我以前这样做过并成功了,但现在无法清理代码库! - Wael Abo-Aishah
你可以执行 git GC 命令来清理旧的未引用内容。 - CodeWizard
强制推送到代码库后,运行(git GC)?我会尝试。 - Wael Abo-Aishah
是的。git gc --aggressive --prune=now 将清理所有不在任何提交中的内容。但如果您有分支,您将需要推送每个分支(强制推送)。 - CodeWizard
在这里,您可以阅读有关更高级选项的内容,以修复您的分支。https://dev59.com/ulsW5IYBdhLWcg3w2qNM#34519716 - CodeWizard
显示剩余2条评论

0

查看强制 "git push" 覆盖远程文件

我认为你在推送时添加了 origin master,所以没有覆盖所有内容...

git push -f

但这会替换存储库中的所有内容....


它不会起作用。内容仍将保留在存储库中。它不会被清除!!! - CodeWizard
是的,你说得对,我忘记初始化git了,所以失去了与仓库的连接... - eesdil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接