先前提交

时间:2018-03-28 07:51:35

标签: git github

我有"文件大小限制为100.00"在先前的提交中由于一个文件。我不想上传这个zip文件,但现在是在本地提交的,在我现在之前是2次提交。

每次我试图推送新提交时,它再次向我显示错误,因为它也试图推送以前的错误。

堆栈如下:

提交

Commit1 (Actual)
Commit2
f0ce53a
Commit3
  ...

zip文件位于f0ce53a中,同样在此提交中有一些我希望推送它们的更改。

有没有办法在没有zip文件的情况下推送提交f0ce53a?

非常感谢, 如果您需要任何进一步的信息,请告诉我。

1 个答案:

答案 0 :(得分:2)

解决问题的一种方法是使用交互式rebase(有关文档,请参阅here):

git rebase -i Commit3

您将获得一个可编辑的文本文件,如下所示:

pick f0ce53a Add a big pesky zip file and some other stuff
pick Commit2 Misc. changes
pick Commit1 Misc. changes

文件底部会有一些有用的注释行,列出各种可能的命令。我们关心的是pick,这意味着提交应该按原样使用,而edit将在给定提交时停止rebase以允许我们修改它。

f0ce53a是添加了zip文件的提交,因此我们会在该行上将pick更改为edit,并留下以下内容:

edit f0ce53a Add a big pesky zip file and some other stuff
pick Commit2 Misc. changes
pick Commit1 Misc. changes

保存文件并退出(vim::x),您将处于问题提交状态。删除zip文件并修改提交,然后继续rebase:

git rm foo.zip
git commit --amend
git rebase --continue

您已经重写了历史记录,就像从未提交过zip文件一样。