Git Security
自分のなりすましを防ぎ、重要なブランチを守るためのセキュリティプラクティス。
1. Signed Commits (GPG / SSH)
graph TD
User[Dev] -->|Sign wtih GPG/SSH| Commit[Signed Commit]
Commit -->|Push| GitHub
GitHub -->|Verify Public Key| Badge[Verified Badge ✅] Gitは設定さえすれば誰でも他人になりすましてコミットできてしまいます。これを防ぐために署名を行います。
最近はSSHキーを使った署名が簡単でおすすめです(GitHubも対応済み)。
# 1. Configure Git to use SSH for signinggit config --global gpg.format ssh
# 2. Set your SSH keygit config --global user.signingkey ~/.ssh/id_ed25519.pub
# 3. Sign all commits by defaultgit config --global commit.gpgsign true
# 4. Sign a specific taggit tag -s v1.0.0 -m "Release v1.0.0"2. Branch Protection Rules
GitHubリポジトリの `Settings > Branches` で設定できる、mainブランチを守るための最強の盾です。
Recommended Settings
- ✅ Require a pull request before merging (直接push禁止、必ずPR経由)
- ✅ Require status checks to pass before merging (CI (テスト) が通らないとマージ不可)
- ✅ Require linear history (マージコミットを減らし、履歴をきれいに保つ)
- ✅ Do not allow bypassing the above settings (管理者でもルールを破れないようにする)