首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我做挤压合并,我必须从分支提交历史记录中清除密码吗?

如果我做挤压合并,我必须从分支提交历史记录中清除密码吗?
EN

Stack Overflow用户
提问于 2020-11-11 03:54:38
回答 3查看 148关注 0票数 0

我不小心向一个功能分支提交了密码,并将该分支同步到了远程。我尝试使用bfg清理分支提交历史记录,但没有成功,而使用git-filter-repo我遇到了其他问题。

现在,我将不带密码的设置文件提交到分支。

如果我使用squash merge将功能分支合并到源分支,并删除功能分支,是否会有效地从所有git历史记录中删除密码?

EN

回答 3

Stack Overflow用户

发布于 2020-11-19 03:40:01

我最终做的是

  • 在目标系统中吊销密码
  • 使用新的commit
  • 从代码中删除密码在注释中添加先前看到的密码已更改

最好不要偷懒你的错误,而是采取步骤来更改密码。

票数 1
EN

Stack Overflow用户

发布于 2020-11-11 04:20:35

到目前为止,密码似乎只在您的本地功能分支和远程功能分支上。删除它的最简单方法是在本地删除它,然后强制将其推回。使用amend或交互式rebase在没有密码的情况下在本地重写提交,然后强制推出分支。在这一点上,提交将在服务器上保持隐藏状态,直到它被垃圾收集,并且所需的时间取决于服务器。(一些git客户端默认为60天,但如果没有更多信息,就不可能知道您的服务器默认为什么。)

注意:如果您已经创建了一个包含带有密码的提交的分支的拉取/合并请求,那么服务器可能会无限期地保留所包括的提交的历史记录。出于这个原因,我会避免在拉/合并请求时进行挤压合并,因为它可能会在很长一段时间内保留提交的历史记录。

如果您的存储库是公共的,那么您应该假设密码已经被攻破,并且您应该立即更改它。事实上,即使在私有repo中,这也可能是最安全的选择,除非您愿意与您的合作者共享它。

票数 0
EN

Stack Overflow用户

发布于 2020-11-11 07:17:05

首先,让我们切入正题:

密码已经被泄露了。在你把它推到遥控器上后,你无法追踪它可能去了哪里。您不能将这个精灵放回瓶子里;唯一安全的做法是更改密码。

这使得剩下的讨论大多是学术的。要么密码不会被更改并将其从历史记录中删除是不充分的措施,要么密码将被更改并从历史记录中删除是表面上的。

尽管如此,为了回答你的直接问题:

如果我使用squash合并并删除功能分支,将功能分支合并到源分支,是否会有效地从所有git历史记录中删除密码?

不怎么有意思。要从本地repo中完全删除数据,必须确保所有ref和reflog都无法访问包含该数据的提交,然后必须强制垃圾收集。要真正从远程删除它,需要类似的过程,但如何处理这种内务管理取决于存储库是如何托管的。

再一次,所有这一切都假设没有人已经获取了其历史记录包含密码的ref。如果他们这样做了,你也不能强迫他们放弃它。

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

https://stackoverflow.com/questions/64775871

复制
相关文章

相似问题

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