我可以删除我当地的.git仓库吗?

时间:2012-06-27 21:32:36

标签: ruby-on-rails git heroku

我的heroku repo增长到1.5gb,所以heroku支持的好伙伴清除了远程heroku repo,并建议我推送一份新的副本。

然而,du -h .git本地的结果显示.git为276m。而且,可以预见的是,当我试图将master推向它时,heroku会抛出一个错误。

所以,我的问题是:我可以删除我的本地.git文件夹,执行git init并推送到heroku吗?这究竟是做什么的?

我的应用程序代码被推送到github - 我通常的工作流程是:

git add .
git commit -m "message"
git push #to github
git push heroku master

4 个答案:

答案 0 :(得分:3)

可能出现的问题

您的存储库可能比预期更大的原因有两个。

  1. 您的存储库中有很多二进制资产。
  2. 你有一个巨大的提交历史。
  3. 可能的解决方案

    如果其中任何一个是原因,您有几个选择。请考虑以下事项。

    1. 如果您的问题是二元资产,请将资产移至外部资产商店(例如Amazon S3或远程文件系统)。然后,您可以使用git-filter-branch和git-gc将其从历史记录中删除。这将大大减少您的存储库。

    2. 如果您的问题是一个非常大的历史记录,请单独shallow clone推送到Heroku。例如:

      git clone --depth 1 my_repo heroku_repo
      

答案 1 :(得分:0)

嗯,你不能这样做,除非你强行推(这几乎从不推荐)。这将删除整个提交历史记录并创建一个全新的存储库。

但如果你想因为太空而抹去一切......你可以。这只是......很奇怪。

如果你只推主人怎么办?

答案 2 :(得分:0)

您可能想要做一些housekeeping

答案 3 :(得分:0)

做出赞成的回答,但请记住,你不能推动浅层克隆。这是一个跟进:Pushing to github after a shallow clone