繁体   English   中英

如何删除大文件2 git提交回来?

[英]how to remove a large file 2 git commits back?

本质上,我想在我的本地仓库中回退两次提交。 尚无任何东西被推到遥远的地方。

因此,在我的GIT存储库中,我不小心在提交(A)中添加了一个巨大的zip文件。 我意识到了这一点,使用finder删除了zip文件并进行了另一次提交(B)。

但是现在我意识到,如果将其推送到远程,它将包含整个zip文件...

为了使事情变得更复杂,在我不想丢失的第一次提交(A)中,我还对几个文件进行了许多重要更改。

在推送到远程服务器之前,如何从历史记录中删除该zip文件? 我可以在两次提交之前回到文件状态,而不会丢失其他几个文件中所做的所有更改吗?

修复它的最简单方法是使用git reset <commit>命令。

对于您的情况,由于要回滚两次提交,因此可以执行以下操作:

git reset HEAD~2

git help reset

git reset [<mode>] [<commit>]

--mixed重置索引,但不重置工作树(即,已更改的文件将保留但未标记为提交),并报告未更新的内容。 这是默认操作。

之后,您的存储库中的文件将完全不会更改,但是最近的两次提交将不再存在。

然后,您可以按照通常的方式选择要提交的文件。

链接: 如何移动HEAD /恢复更改

阅读以上链接以获取全部详细信息。

您可以使用 :


从上面的帖子中获得的是重置您的HEAD可以执行的流程

在此处输入图片说明


其他选项:

How to remove big files from the repository

您可以使用git filter-branch或BFG。 https://rtyley.github.io/bfg-repo-cleaner/

BFG Repo-Cleaner

git-filter-branch的替代方法。

BFG是git-filter-branch的一种更简单,更快的替代方法,用于从Git存储库历史记录中清除不良数据

*删除疯狂的大文件*
*删除密码,凭据和其他私人数据

示例(来自官方网站)

在所有这些示例中,bfg是java -jar bfg.jar的别名。

# Delete all files named 'id_rsa' or 'id_dsa' :
bfg --delete-files id_{dsa,rsa}  my-repo.git

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM