我可以通过git合并--挤压本地分支来删除敏感信息吗?

我可以通过git合并--挤压本地分支来删除敏感信息吗?,git,git-merge,git-squash,Git,Git Merge,Git Squash,我正在开发一个API客户端,作为一个优秀的git用户,我在一个功能分支上完成了所有工作。我对我当地的分支机构做了几十次承诺,但没有把它推到任何地方。我现在准备将我的本地分支合并到master 然而,在最初的测试中,我在代码中有API密钥,然后将其提交给本地特性分支。我已经修复了这个问题,我的功能分支上所有代码的当前版本都使用配置文件,并且没有敏感信息 如果我挤压合并我的功能分支到master(使用git checkout master;git merge--squash my feature)并

我正在开发一个API客户端,作为一个优秀的
git
用户,我在一个功能分支上完成了所有工作。我对我当地的分支机构做了几十次承诺,但没有把它推到任何地方。我现在准备将我的本地分支合并到
master

然而,在最初的测试中,我在代码中有API密钥,然后将其提交给本地特性分支。我已经修复了这个问题,我的功能分支上所有代码的当前版本都使用配置文件,并且没有敏感信息


如果我挤压合并我的功能分支到
master
(使用
git checkout master;git merge--squash my feature
)并按下该按钮,那么之前提交并随后修复的秘密API密钥是否会被其他人看到?或者挤压提交会使没有本地分支的任何人都无法使用该秘密吗?

是的,如果挤压所有中间提交,则该秘密将在推送的分支中不可见。不过,您应该重新设置基础,而不是合并。

只要您从未按下功能分支,这些文件就永远不会进入远程。谢谢。但是,我不知道为什么我应该重新设置基址。我在
master
上安装了一个分支,分支完成后,我现在想将我的工作返回
master
与其他人共享。你是在建议一个重基,而不是一个合并吗?@josh,它避免了不必要的合并提交。老实说,我还没有做过合并壁球。。。我总是重新定基调——我总是那样做壁球。是的,在这种情况下,我希望合并提交作为添加新功能的提交。这就是为什么我为它制作了一个功能分支:)谢谢你的帮助!