如果只修改尚未推送的提交,使用Git的filter-branch重写的安全性?

时间:2012-08-13 05:42:10

标签: git git-filter-branch

在我注意到我没有使用正确的电子邮件地址或用户名之前,我克隆了一个repo并继续进行本地提交。在这里使用这个脚本,我成功运行了filter-branch并获得了我想要的结果:

https://help.github.com/articles/changing-author-info

我从这里的帖子中获得的理论上的理解是,我可以影响任何未被推动的东西,而不会给其他人带来麻烦。我想,这应该是真的,即使我已经将其他人的承诺与主人合并了。但我想确保理论在这个非常具体的案例中与实践联系起来!

重申:如果修改的唯一电子邮件地址和用户名记录是我的名字从未被推过的那些,这样安全吗?我相信它突然变得正确不安全if(例如)我是否尝试更改master中存在的提交中的电子邮件名称?

2 个答案:

答案 0 :(得分:1)

是。只要你只影响其他人没见过的提交,你就没事了。

答案 1 :(得分:1)

git filter-branch之后,您可以在.git/refs/original中看到原始提交 有关该目录的更多信息,请参阅“how to remove old commits after filter-branch?”。

如果远程仓库中没有这些SHA1,那么您是安全的,并且可以随时推送修改后的仓库。