Git:修改先前提交中的代码以删除敏感信息

标签 git github

我有一个私有(private)仓库,我在其中开发了一堆脚本供我个人使用。然后我草率地推送信息而没有编写 gitignore,并将我的个人访问 token 直接硬编码到脚本中。现在,很多人都在要求脚本,所以我决定发布 git repo。但是,我可以理解地需要从 git 历史记录中删除访问 token 。截至目前,我是唯一使用该存储库的人。

我这样做,但是由于许多其他原因需要提交保持独立(因此我无法进行更改并压缩所有提交)。我明白我可以 remove the files involved ,但访问 token 位于主脚本文件本身。因此,我想在之前的提交中删除/编辑该行,并将其转移到较新的提交中。

我该怎么做?

最佳答案

如果你没有做任何其他事情,你可以使用 git commit --amend

首先修改任何你想改变的东西。添加这些文件 git add . 或特定文件。

然后 git commit --amend 这会导致更改您之前的提交状态,因此 git log 会有所不同。您甚至可以在此处编写另一条提交消息。

如果你想重新开始,那么你应该重置到以前的。

git reset --hard HEAD~1 会成功的。小心,它会清除您上次提交后的所有更改。

无论如何,如果你已经推送到你的远程仓库,你可以使用 git push -f

关于Git:修改先前提交中的代码以删除敏感信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63757922/

相关文章:

git - 在 Github repo 上的所有先前提交中 stash 密码

git - 为什么我在Android Studio中需要GitHub中的Tag?

python - 如何为 python 3.7 正确安装 Flask 以运行这个 github 项目?

git - 如何将带有现有文件的本地项目导入源代码树

linux - 使用 Perl Unix 命令转义序列

git - 在交互式 rebase 期间使用 git 的 prepare-commit-msg Hook

git - 如何转到git中的特定提交

git - 恢复 git push

git - 压缩本地提交后推送到远程分支失败

GitHub git 标签而不创建 zip 文件?