如何从GitHub存储库历史记录中删除文件夹?

时间:2020-03-27 20:00:53

标签: git github

偶然地,我从代码中删除了.gitignore文件,然后我上载了/ build /文件夹,这导致我的回购大小为1.00 GB,我尝试创建另一个没有此文件夹的分支,然后删除前一个分支并扩孔分支母版,在代码中/ build /文件夹不存在,但是回购大小相同。

1 个答案:

答案 0 :(得分:0)

如果此后未进行任何新提交,则可以使用以下命令覆盖最新的提交:

git rm -r --cached build
git commit --amend --no-edit

并使用

覆盖它
git push --force-with-lease

如果要从所有提交(也包括较早的提交)中将其删除,请执行

git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch build' -f HEAD

之后

git push --force-with-lease

filter-branch命令将重写本地历史记录,并在存在的所有提交中删除build目录。

请注意,filter-branch已过时。

第二个命令将覆盖远程分支。

如果要从特定提交中将其删除,则可以进行交互式变基。

为此,请在第一次更改之前查找提交ID的哈希,然后更改并运行

git rebase -i <hash>

然后,在要删除pick的所有提交中将edit更改为build,保存并关闭编辑器(如果使用ViM,则:wq)。 / p>

然后,按照前面的描述进行更改并修改提交。修改后,您可以继续使用下一个要更改的密码

git rebase --continue

完成后,您需要执行

git push --force-with-lease

也是。