不要推送特定的提交

时间:2016-07-18 05:25:44

标签: git github sourcetree

我有我的git设置和工作,我在.gitignore中指定了.a库,因此不会上传大文件。但在一个特定的提交中,我将其从.gitignore中删除,然后将其提交。推后它给了我错误,我不能推大文件,为此我需要Git LFS。我不想使用Git LFS。我对代码进行了一些更改,并将这些大文件更新为.gitignore,但这些文件仍然被推送。任何解决方案如何克服上述情况。

我尝试从上面的分支创建一个新的分支并尝试推送提交但是在新的分支中但是它们都是一样的。

2 个答案:

答案 0 :(得分:4)

您始终可以使用git rebase就地重写提交历史记录。请注意,此方法不应修改已推送的提交。

例如:使用git rebase -i <BASE_COMMIT>将历史记录重写为BASE_COMMIT(在此处提交删除之前插入提交哈希)。然后,git会向您显示所有提交到HEAD的提交列表。在这里,您可以通过更改前面的关键字来简单地修改这些提交。

在您的情况下,只需更改“选择”即可。去掉&#39;在您的错误提交之前从提交历史记录中删除此单个提交。

如果这个错误的提交包含其他有用的信息,你也可以将它与一个只删除大文件的提交结合起来(&#39;压缩&#39;)。这样,您的提交的其他部分仍然可以正常运行。

请务必在删除此提交之前备份您的大文件,以确保它们不会迷路。

答案 1 :(得分:2)

即使您稍后将它们添加到gitignore,也不会忽略您提交的文件。对此最好的解决方案是使用交互式rebase并删除提交并将这些大文件保留在.gitignore中。就好像这些文件从未提交过一样。