如何停止将已删除的文件推送到远程仓库?

时间:2014-05-19 05:07:42

标签: git github

我提交了一些文件并试图将它们推送到远程存储库。 但是,我在列表中找到了一个大型视频文件并终止了推送。 然后我尝试从列表中删除该文件并再次推送。

$git commit -m "comments" -a
$git push origin my_branch
... # I found mp4 file here and terminated push
$git rm --cached path/to/mp4
$git commit -m "comments" -a
$git push origin my_branch 

问题
git仍然试图将mp4文件推送到repo。

问题 如何避免将已删除的文件推送到远程仓库?

PS
我也试过git rm path/to/mp4,文件已从我的目录中删除但是git仍然试图将文件推送到repo

2 个答案:

答案 0 :(得分:3)

从这些命令看起来,视频文件仍处于提交历史记录中。

假设您没有进行其他提交,请尝试以下操作。如果你只是稍微调整它们。

尝试恢复到之前的提交

git reset --soft HEAD~1

然后执行git状态,看看你是否看到了文件

如果你这样做。然后删除它并重新发送

git commit -c ORIG_HEAD

答案 1 :(得分:2)

如果历史记录大于一次提交,并且mp4大文件已在旧提交中进行了版本化,则可以考虑使用以下方法清理回购的历史记录:

使用git gc --aggressive --prune=now(作为explained here

进行清理

要“回滚”,只需在当前本地仓库的本地克隆上尝试这些操作(这样就是第二个本地仓库,克隆第一个)。如果最终结果不好,您可以在第一个(未触及的)回购中恢复。