1

这意味着其他人可能会推送到我托管在 github 上的 git repos,所以任何人都可以使用

git reset --hard first-commit-id
git push
  1. 这会破坏我托管在 github 上的 git 存储库吗?

  2. 如果某个坏人运行上述命令,我会丢失我的历史吗?

这个问题与如何从 github 中删除我的公钥不同?

4

3 回答 3

2

我不认为仅仅通过重置和发布git push你会删除任何东西。但是,还有其他命令,例如git push -f可以删除或破坏您的整个历史记录,所以我会说您的担心是有道理的。

该线程是关于如何防止破坏历史记录的配置,但就像在另一个线程中解释的那样,该选项不可用于在 github 中进行配置。

所以,如果你允许每个人都推送到你的 github 仓库,我认为你有正当理由担心。

编辑:应该注意的是,这个答案只有在其他人真正有权访问时才有效。通过添加公钥,您通常不会授予任何人访问权限,即使他们拥有相同的公钥 - 要让某人推送,他们需要拥有私钥,而不是公钥。

于 2012-09-27T18:18:40.933 回答
1

1)如果有些人会使用 git push -f 那么是的,你可能会在 repo 中丢失你的提交。在这种情况下,您可以使用密码创建自己的私钥(如果使用密码,您可以运行 ssh-agent 以在每次推送或拉取期间跳过输入密码)

2) git reset,这只是将 HEAD ref 移动到第一个提交,仅此而已,您可以使用git reflog修复它。

于 2012-09-27T20:30:50.787 回答
0

作为分布式 VCS,您将拥有一个与您的机器一样安全的个人本地存储库。

事实上,Github 上的 repo 已被授予完全的公共写访问权限,这是一种选择,因此不应被视为安全问题,而是促进协作,这具有非协作者试图破坏事物的次要风险.

关键是您仍将拥有一份安全的完整个人回购副本,以便继续运营和协作。并在损坏后恢复 github 副本。

于 2012-09-27T23:09:17.923 回答