つまり、他の人が github でホストされている私の git リポジトリにプッシュする可能性があるため、誰でも使用できます
git reset --hard first-commit-id
git push
これは、github でホストされている私の git リポジトリを破壊しますか?
悪者が上記のコマンドを実行した場合、履歴は失われますか?
git push
リセットして発行するだけでは何も削除されないと思います。ただし、履歴全体を削除したり壊したりできるコマンドなどは他にもあるgit push -f
ので、心配は無用だと思います。
このスレッドは、履歴の破棄を防ぐ方法についての構成ですが、別のスレッドで説明されているように、そのオプションはgithubでの構成には使用できません。
したがって、すべての人がgithubリポジトリにプッシュできるようにする場合は、心配する正当な理由があると思います。
編集:この回答は、他の人が本当にアクセスできる場合にのみ有効であることに注意してください。公開鍵を追加することで、同じ公開鍵を所有していても、通常は誰にもアクセスを許可しません。誰かがプッシュするには、公開鍵ではなく秘密鍵を所有する必要があります。
1) git push -f を使用する人がいる場合、そうです。リポジトリでコミットを失う可能性があります。この場合、パスフレーズを使用して独自の秘密鍵を作成できます(パスフレーズを使用する場合は、プッシュまたはプルのたびにパスフレーズの入力をスキップするために ssh-agent を実行できます)。
2) git reset、これは HEAD ref を最初のコミットに移動するだけで、それ以上は何もありません。たとえば、git reflogを使用して修正できます。
分散VCSとして、マシンを作成するのと同じくらい安全な個人用ローカルリポジトリがあります。
Githubのリポジトリに完全なパブリック書き込みアクセスが許可されているという事実は選択であるため、セキュリティの問題と見なすべきではありません。むしろ、コラボレーションを可能にするものであり、非コラボレーション者が物事を台無しにしようとするという小さな副次的なリスクがあります。 。
重要な点は、リポジトリの安全な完全な個人用コピーを引き続き保持できるため、運用とコラボレーションを継続できることです。そして、改ざんされた後、githubコピーを復元します。