相关疑难解决方法(0)

从Git历史记录中删除敏感文件及其提交

我想在GitHub上放置一个Git项目,但它包含某些带有敏感数据的文件(用户名和密码,比如/ config/deploy.rb for capistrano).

我知道我可以将这些文件名添加到.gitignore,但这不会删除他们在Git中的历史记录.

我也不想通过删除/.git目录重新开始.

有没有办法删除Git历史记录中特定文件的所有痕迹?

git git-filter-branch git-commit git-rewrite-history

330
推荐指数
9
解决办法
10万
查看次数

永久删除提交

我知道这个问题有数千条线索。

但我发现了一些非常奇怪的事情。

如果您在 GitHub 上创建项目,请进行一些提交。
假设提交 1、2、3、4、5。
后来,您意识到要将某些内容更改为提交 3。

由于您在自己的分支中工作,因此重写历史记录没有问题。

所以让我们这样做:(基于这个stackoverflow 答案)

git rebase --interactive 'bbc643cd^'

// Modify 'pick' to 'edit' into interactive prompt and :
git commit --all --amend --no-edit
git rebase --continue
git push -f
Run Code Online (Sandbox Code Playgroud)

伟大的!错误已更正。历史已被重写,因此bbc643cd现在提交lkqjfhchc
您可以在 GitHub 上查看源代码,一切都会更新。

但还是有人可以在 GitHub 上找到它!

访问 URL: https: //github.com/your-nickname/your-project/commit/bbc643cd ...(完整提交哈希),您就会找到它!

我们怎样才能永久删除这个提交呢?

谢谢你的帮助!

git github git-rebase

5
推荐指数
1
解决办法
1484
查看次数