2014-05-19 58 views
1

我犯了一些文件,并试图将它们推送到远程reop。 但是,我在列表中找到一个大视频文件并终止了推送。 然后我试图从列表中删除文件并再次推送。如何停止推送删除的文件到远程回购?

$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 

问题
混帐仍试图将MP4文件推送到回购。

问题 如何避免删除的文件推送到远程回购?

PS
我也试过git rm path/to/mp4,文件已经从我的目录,但混帐删除仍然试图推动该文件以回购

+0

做一个git checkout使用git rm删除文件并再次推送文件。这将确保删除该文件。 –

回答

1

从它看起来像视频文件的命令仍然在提交历史。

假设您没有提交其他提交,请尝试以下操作。如果你只是调整了一下。

尝试恢复到先前提交

git reset --soft HEAD~1 

然后做git的地位,看看你是否看到该文件

如果你这样做。然后将其删除,并与

git commit -c ORIG_HEAD 
+0

谢谢,在我尝试解决方案之前,我是否可以知道解决方案将回滚我的更改? – user001

+0

重置 - 在您提交之前,软件不应该滚动任何东西。它会将您返回到提交之前的状态。所有该提交中的更改将显示在暂存区域中。 – Bachmann

+0

如果你不确定只是初始化另一个文件夹中的git回购和实验。 或者建立一个新的分支并尝试那里的命令。即使出现问题,reflog也是你的朋友 – Bachmann

1

再犯如果历史不只是一个承诺更大,MP4的大型文件中老年犯了版本,你可以考虑清理你的回购的历史与:

按照与git gc --aggressive --prune=now(如explained here

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