如何从git committ删除目录

时间:2018-07-20 09:48:30

标签: git github version-control versioning

我有一个大文件夹,大小为GB。其中的文件超过100 MB。 我确实上演了文件夹,然后提交。然后我执行了:

git push origin master

但是我有错误。从错误中我知道无法上传特定文件夹。 我将其移至工作目录之外。

现在我一次又一次提交目录

push origin master

尽管我已删除大文件,但Git仍然抱怨大文件。

我使用以下方法检查状态:

git status

我收到此消息:

On branch master
Your branch is ahead of 'origin/master' by 5 commits.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

如果我尝试tp将更改推送到原始主机,则会收到有关大文件的错误。我无法删除或取消跟踪它们。

我的目录如下:

C:\Users\myuser\Documents\GitHub\myproject\data\largedirecor

大目录是有问题的,我将其移至项目目录之外。但这并没有解决问题。

如何在不因文件大而被阻塞的情况下推送更改?如何使git忘记它。

1 个答案:

答案 0 :(得分:1)

您已经签入了文件,因此git知道了它们。仅仅删除文件并不会达到预期的效果,您需要摆脱提交或更改添加文件的位置。

您可以使用

git rebase -i origin/master

以交互方式更改您所做的提交。将打开一个编辑器。

您现在有2个选择:

1)所有文件都在一次提交中引入,没有其他文件。在这种情况下,只需删除有问题的提交行。它将从您的历史记录中删除,因此不会被推送。

2)同一提交中还有其他文件:用pick替换行首的edit。然后通过删除有问题的文件来编辑提交并执行git rebase --continue

然后,文件不再在您的提交历史记录中。