mercurial忘记对特定文件的修订更改

时间:2013-04-24 01:16:10

标签: version-control mercurial

在最近的提交中,我意外地将更改包含在具有生产服务器的密码和敏感信息的设置文件中。我将更改推送到私有存储库,但也有一个公共存储库。我想将更改推送到公共存储库但是如何避免包含该特定文件中的更改?它已经在提交中了。

2 个答案:

答案 0 :(得分:0)

如果您只有提交(到您的.hg存储库)但没有推送到默认的中央存储库,那么您可以使用hg rollback这将“撤消”您的提交。然后你可以修改一些事情:忘记文件,修改,更改日志消息等然后再次提交并最终推送。

答案 1 :(得分:0)

  

我将更改推送到私有存储库

您是说您在本地提交了更改集,还是将其推送到只有您可以访问的另一个仓库?你实际运行hg push吗?

  

但也有一个公共存储库。

更改集是否已将其发送给公共回购?

基本上,如果变更集是公开的,它就会消失。这是你无法控制的。更改服务器上的凭据。

如果更改集仍然是私有的,那么您可能会很幸运。如果它是本地的,那么您可以使用hg strip删除更改集,但要注意它也会删除所有后代。如果它已经成为任何其他回购的方式,那么你也需要将它从那些中删除。如果更改集存在于任何位置,那么当您pull时,它会返回。

无论如何,现在可能是时候更改服务器上的凭据了。