这意味着其他人可能会推送到我在github上托管的git repos,所以任何人都可以使用
git reset --hard first-commit-id
git push
这会破坏我在github上托管的git repos吗?
如果一个坏人运行上述命令,我会失去我的历史吗?
答案 0 :(得分:2)
我不认为只是通过重置和发布git push
您将删除任何内容。但是,还有其他命令,例如git push -f
可以删除或破坏您的整个历史记录,所以我想说您的担心是有效的。
This thread是关于如何防止破坏历史记录的配置,但如another thread中所述,该选项不适用于在github中配置。
所以,如果你允许每个人都推送你的github回购,我认为你有理由担心。
编辑:应该注意的是,这个答案只有在其他人真正有权访问时才有效。通过添加公钥,您通常不会给任何人访问权限,即使他们拥有相同的公钥 - 对于有人推送,他们需要拥有私有密钥,而不是公共密钥。
答案 1 :(得分:1)
1)如果有些人会使用git push -f然后是,你可能会丢失你的回购提交。在这种情况下,您可以使用密码创建自己的私钥(如果使用密码短语,则可以在每次推送或拉动期间运行ssh-agent以跳过密码)
2) git reset ,这只是将HEAD ref移动到第一次提交,仅此而已,您可以使用 git reflog 来修复它。
答案 2 :(得分:0)
作为分布式VCS,您将拥有一台个人本地仓库,与您制造机器一样安全。
Github上的回购已获得完全公开写访问的事实是一个选择,所以不应该被视为一个安全问题,而是它是协作的推动者,这对非合作者的尝试有轻微的风险破坏事物。
关键是,您仍然可以拥有回购的安全完整个人副本,因此可以继续运营和协作。并在损坏后恢复github副本。