我一直通过使用heroku和git的基本工作流程来更新Facebook应用程序。我是唯一的工作人员,每周都会发生一个新的二进制文件更新。
git commit -am“new update”
git push heroku
这个二进制文件已经增长到大约30 MB。最近所有的推送命令都失败了,就像这样: Counting objects: 7, done. Compressing objects: 100% (4/4), done. fatal: sha1 file '' write error: Invalid argument error: failed to push some refs to 'mysecretgitplace'
我在很多地方查找,发现这是一个非常普遍的问题,似乎没有任何特定的原因,可能是任何问题。 现在随着时间的推移,唯一改变的是二进制文件的大小和提交次数的增加,所以很可能只是这个原因。
因此,现在我想尝试减少服务器空间的使用,通过删除/销毁/抹掉这个二进制文件的历史记录(除了当前版本(在服务器上的head/master或其他)之外完全删除)。我会每隔一段时间这样做,除了每周提交二进制文件之外。
有没有一种命令可以让我这样做?(不重新添加整个“已删除”的文件历史记录,一旦我提交了新的二进制文件)
(显然,我只想专注于我的游戏,不想去麻烦服务器和版本控制的事情。)
这个二进制文件已经增长到大约30 MB。最近所有的推送命令都失败了,就像这样: Counting objects: 7, done. Compressing objects: 100% (4/4), done. fatal: sha1 file '' write error: Invalid argument error: failed to push some refs to 'mysecretgitplace'
我在很多地方查找,发现这是一个非常普遍的问题,似乎没有任何特定的原因,可能是任何问题。 现在随着时间的推移,唯一改变的是二进制文件的大小和提交次数的增加,所以很可能只是这个原因。
因此,现在我想尝试减少服务器空间的使用,通过删除/销毁/抹掉这个二进制文件的历史记录(除了当前版本(在服务器上的head/master或其他)之外完全删除)。我会每隔一段时间这样做,除了每周提交二进制文件之外。
有没有一种命令可以让我这样做?(不重新添加整个“已删除”的文件历史记录,一旦我提交了新的二进制文件)
(显然,我只想专注于我的游戏,不想去麻烦服务器和版本控制的事情。)
git rm --cached
只会删除历史记录中的文件。你仍然可以在你的存储库中找到它作为未跟踪的文件。所以你可以再次添加它。在你的情况下,我会做以下两件事:1)清理存储库并将这个大文件添加到你的gitignore中;2)使用其他方式推送文件或将其存储在其他地方(aws是一个不错的选择)。长期来看,在git文件夹中保留大文件是无法管理的。 - Vincent B.git push --force
。如果没有,你的文件不可能从服务器上消失。你应该能够像往常一样执行git add your_file
和git commit
,以获得文件的当前版本。如果你没有运行过git gc --prune
或类似的命令,你的文件以及参考它的每个提交,仍然应该在你的 .git/ 文件夹中的某个地方。无论如何,请阅读 https://help.github.com/articles/remove-sensitive-data。里面的所有内容都讲的非常清楚明白。 - Vincent B.