代码之家  ›  专栏  ›  技术社区  ›  hotmeatballsoup

通过git-rebase从GitHub清除提交提示我输入“更多?”?

  •  0
  • hotmeatballsoup  · 技术社区  · 2 年前

    我有一个GitHub repo,里面有一个Python脚本,在这个Python脚本中,我提交的一些代码意外地包含了一些重要的凭据/机密:

    storage_account_name = "some_account"
    storage_account_key = "abc123"
    

    在上面的代码中,两者 storage_account_name storage_account_key 是不应该提交给源代码的关键机密。但为时已晚,我提交并将代码推送到GitHub。

    我需要创建一个本地分支,将它们更新为:

    storage_account_name = "<CHANGEME>"
    storage_account_key = "<CHANGEME>"
    

    …然后提交并推送到GitHub。但不知何故,在那之前或之后,我需要删除/清除特定的提交(包含其真实值),这样GitHub中就没有我推送过敏感凭据的任何历史记录。这是一个安全问题:任何人都不应该查看回购的提交历史记录,并查看包含“abc123”值的文件版本。我怎样才能完成这一切? 请注意 :这是我自己的私人回购,但我确实计划在未来与他人分享。

    我在谷歌上搜索了如何做到这一点,看起来我需要提交并推动一个更改(包含CHANGEME值),然后 Git回扣 。所以我查找了我的提交ID(当我不小心引入真实值时的ID),并尝试进行重新基准:

    git rebase -i <redacted>^
    

    当我这样做时,命令行只会说:“更多?”:

    enter image description here

    这是怎么回事?如何从历史记录中清除提交(有或没有重新基准)?

    1 回复  |  直到 2 年前
        1
  •  1
  •   Geno Chen    2 年前

    您使用过 ^ 用于表示“父提交”,但该符号恰好是命令提示符的转义符。

    你需要引用整件事 "b5ac9...7a^" .