首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从git存储库历史记录中删除文件

问从git存储库历史记录中删除文件
EN

Stack Overflow用户
提问于 2020-01-14 05:04:31
回答 1查看 6.7K关注 0票数 13

我误签了一些敏感文件(进入github)。为了纠正这一点,我遵循了这里指令并运行了以下命令:

代码语言:javascript
复制
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch settings.json" --prune-empty --tag-name-filter cat -- --all
echo "settings.json" >> .gitignore
git add .gitignore
git commit -m "Add settings.json to .gitignore"
git push origin --force --all
git push origin --force --tags
git for-each-ref --format="delete %(refname)" refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now

不过,我可以转到提交历史记录来查看已删除的文件。

要解决此问题,如何从github提交历史记录中删除该文件?

​

​

​

​

EN

回答 1

Stack Overflow用户

发布于 2020-01-14 05:08:40

相反,尝试使用最佳实践是使用新工具git filter-repo ( git filter-branch )。

注意:如果在运行上述命令时收到以下错误消息:

代码语言:javascript
复制
Error: need a version of `git` whose `diff-tree` command has the `--combined-all-paths` option`

这意味着你必须git。

见"路径滤波":

代码语言:javascript
复制
git filter-repo --path settings.json --invert-paths

然后是git push --force

最后不需要所有的repack/gc/prune :该工具为您做了清理工作。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59727771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档