田中博悠 / 湘南藤沢高専学生会副会長
.gitignore
commit
push
pull
clone
[あなたのPC] [GitHub] ローカルリポジトリ ←→ リモートリポジトリ 作業する場所 push/pull 共有される場所
最終版.zip 最終版_修正.zip 最終版_本当に最後.zip
最終版.zip
最終版_修正.zip
最終版_本当に最後.zip
→ Git があればこういう管理は不要
git blame
コードの分岐した作業ライン。本流(main)を壊さずに作業できる。
main ●────────────────────────● ↘ ↗ feature ●──●──●──●──●
main ブランチに直接 push しない
シンプルで多くのチームで使われているブランチ戦略。
1. main から feature ブランチを切る 2. ブランチ上で作業・commit 3. Pull Request を作成 4. コードレビューを受ける 5. 承認されたら main へ merge 6. ブランチを削除
main
feature/add-login
fix/typo-readme
絶対にリポジトリに入れてはいけない
.env
*.pem
*.key
.gitignore ファイルに書いたパターンは Git が無視する。
# 環境変数 .env .env.local .env.*.local # 秘密鍵 *.pem *.key # 依存関係(大量ファイルをpushしない) node_modules/ __pycache__/ # IDEの設定ファイル .vscode/ .idea/
AWSのアクセスキーをうっかりGitHubにpush → Botが数分で検知 → 数時間で数十万円の不正利用
→ 最初からpushしないのが唯一の正解
人間はミスをする。GitHubの機能で強制できる。
Settings → Branches → Add branch ruleset から設定
「この変更を main に取り込んでください」という提案 + 議論の場
## 概要 ログイン機能にバリデーションを追加した。 ## 変更内容 - メールアドレスの形式チェックを追加 - 空白送信を防止 ## 確認方法 1. ログインページへ移動 2. 不正なメールアドレスを入力 3. エラーメッセージが表示されることを確認 ## 関連 Issue closes #42
Git の user.name と user.email は自由に設定できる。
user.name
user.email
git config user.email "someone@example.com" # 他人になりすましてcommitできてしまう
→ コミットログは改ざん・なりすましが可能
GPGキーで署名することで「本当に自分が書いた」を証明する。
GitHubでは署名済みコミットに Verified バッジが付く
Verified
# 1. GPGキーを生成 gpg --full-generate-key # 2. キーIDを確認 gpg --list-secret-keys --keyid-format=long # 3. GitにGPGキーを設定 git config --global user.signingkey <KEY_ID> # 4. 常に署名する設定 git config --global commit.gpgsign true # 5. 公開鍵をGitHubに登録 gpg --armor --export <KEY_ID> # → GitHub Settings → SSH and GPG keys → New GPG key
Issue は公開されている
脆弱性の詳細を Issue に書く=世界中に公開
→ 修正前に攻撃者に悪用される
Security → Report a vulnerability から非公開で報告できる
非公開で報告 → 開発者と非公開で議論 → 修正完了 → CVE 発行 → 公開
これを Coordinated Disclosure(協調的開示) という
ご質問はありますか?