Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
初心者でも簡単理解。Github講座
Search
tanahiro2010
July 03, 2026
14
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
初心者でも簡単理解。Github講座
前適当に作ったやつ
tanahiro2010
July 03, 2026
More Decks by tanahiro2010
See All by tanahiro2010
Serverlessしかなかったので、ブラウザに働いてもらいました
tanahiro2010
1
38
React Hooksを使いこなせ! ――初心者でも簡単。ポートフォリオ開発で実践するReact講座.pdf
tanahiro2010
0
12
SQLインジェクション ――攻撃の仕組みから対策まで
tanahiro2010
0
33
LLM AgentでTRPGを動かしたら、Agentの地獄を(多分)全部見た
tanahiro2010
1
120
だから僕はMarpを使う ――Bokuchiのすゝめ
tanahiro2010
1
17
私にとって便利なもの。個人開発LT
tanahiro2010
2
200
仕様交渉で信頼を積む方法、あるいは積んでしまった話
tanahiro2010
1
21
残念、8割は画像でした
tanahiro2010
0
29
ゴミ捨てLINE通知SaaSを作ろうとしたら気づいたらCron SaaS作ってた話
tanahiro2010
1
55
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
270
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
190
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
320
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
A Tale of Four Properties
chriscoyier
163
24k
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
450
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
YesSQL, Process and Tooling at Scale
rocio
174
15k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
Transcript
GitHub 活用セミナー チーム開発のセキュリティと運用 田中博悠 / 湘南藤沢高専学生会副会長 GitHub 活用セミナー © 2026
1
アジェンダ 1. Git とは何か(概念) 2. なぜチーム開発で Git が必要か 3. ブランチ戦略
4. .gitignore とシークレット管理 5. Branch Protection Rules 6. PR とコードレビュー 7. Sign Commit 8. 脆弱性を見つけたら GitHub 活用セミナー © 2026 2
1. Git とは何か バージョン管理システム ファイルの変更履歴をすべて記録する仕組み いつ・誰が・何を変えたかを追跡できる 過去の任意の状態に戻せる 主要な概念 用語 意味
commit 変更を記録するスナップショット push ローカルの変更をリモートへ送る pull リモートの変更をローカルへ取り込む clone リモートリポジトリをローカルへ複製 GitHub 活用セミナー © 2026 3
ローカルとリモート [あなたのPC] [GitHub] ローカルリポジトリ ←→ リモートリポジトリ 作業する場所 push/pull 共有される場所 ローカル:自分のPCの中にある作業スペース
リモート:GitHubなどのサーバー上にある共有リポジトリ オフラインでも作業できて、あとでpushできる GitHub 活用セミナー © 2026 4
2. なぜチーム開発で Git が必要か 上書き事故がなくなる 最終版.zip 最終版_修正.zip 最終版_本当に最後.zip → Git
があればこういう管理は不要 変更履歴が追える 「誰がこのバグを入れた?」がわかる( git blame ) 「なぜこう書いた?」はコミットメッセージで残せる 並行作業ができる 複数人が同時に別々の機能を開発できる 最終的に安全にマージできる GitHub 活用セミナー © 2026 5
3. ブランチ戦略 ブランチとは コードの分岐した作業ライン。本流(main)を壊さずに作業できる。 main •────────────────────────• feature •──•──•──•──• 鉄則 main
ブランチに直接 push しない GitHub 活用セミナー © 2026 6
GitHub Flow シンプルで多くのチームで使われているブランチ戦略。 1. main から feature ブランチを切る 2. ブランチ上で作業・commit
3. Pull Request を作成 4. コードレビューを受ける 5. 承認されたら main へ merge 6. ブランチを削除 ポイント main は常にデプロイ可能な状態を保つ ブランチ名は何をするか明確に(例: feature/add-login , fix/typo-readme ) GitHub 活用セミナー © 2026 7
4. .gitignore とシークレット管理 push してはいけないもの 絶対にリポジトリに入れてはいけない APIキー・アクセストークン .env ファイル 秘密鍵(
*.pem , *.key ) パスワードを含む設定ファイル GitHub 活用セミナー © 2026 8
.gitignore の書き方 .gitignore ファイルに書いたパターンは Git が無視する。 # 環境変数 .env .env.local
.env.*.local # 秘密鍵 *.pem *.key # 依存関係(大量ファイルをpushしない) node_modules/ __pycache__/ # IDEの設定ファイル .vscode/ .idea/ GitHub 活用セミナー © 2026 9
やらかし事例 よくある実際のインシデント AWSのアクセスキーをうっかりGitHubにpush → Botが数分で検知 → 数時間で数十万円の不正利用 GitHub には Secret
Scanning 機能があり、既知のトークン形式を検知してくれる ただし検知される前に既にBot収集済みのことが多い push してから消しても遅い(履歴に残る) → 最初からpushしないのが唯一の正解 GitHub 活用セミナー © 2026 10
5. Branch Protection Rules 「ルールを決める」だけでは足りない 人間はミスをする。GitHubの機能で強制できる。 設定できること 設定 効果 Require
pull request reviews PR なしの merge を禁止 Require status checks CI 通過しないと merge 不可 Restrict who can push 直 push できる人を制限 Require signed commits 署名なし commit を拒否 Settings → Branches → Add branch ruleset から設定 GitHub 活用セミナー © 2026 11
6. PR とコードレビュー Pull Request とは 「この変更を main に取り込んでください」という提案 +
議論の場 PR を出すときのポイント 小さく出す:レビューしやすいサイズに分ける 説明を書く:何を・なぜ変えたか スクリーンショット:UIの変更があれば添付 GitHub 活用セミナー © 2026 12
良いPRの説明テンプレート ## 概要 ログイン機能にバリデーションを追加した。 ## 変更内容 - メールアドレスの形式チェックを追加 - 空白送信を防止
## 確認方法 1. ログインページへ移動 2. 不正なメールアドレスを入力 3. エラーメッセージが表示されることを確認 ## 関連 Issue closes #42 GitHub 活用セミナー © 2026 13
コードレビューとは 目的 バグの早期発見 セキュリティ上の問題の指摘 知識の共有・チームの品質統一 レビュアーとして 「なぜこう書いたか」を理解しようとする 指摘はコードに対して行う(人格攻撃ではない) 良い点も伝える レビューを受ける側として
指摘は改善のチャンス 説明できない実装は疑う GitHub 活用セミナー © 2026 14
7. Sign Commit なぜ必要か Git の user.name と user.email は自由に設定できる。
git config user.email "
[email protected]
" # 他人になりすましてcommitできてしまう → コミットログは改ざん・なりすましが可能 Sign Commit とは GPGキーで署名することで「本当に自分が書いた」を証明する。 GitHubでは署名済みコミットに Verified バッジが付く GitHub 活用セミナー © 2026 15
Sign Commit の設定手順 # 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 GitHub 活用セミナー © 2026 16
8. 脆弱性を見つけたら Issue に書いてはいけない理由 Issue は公開されている 脆弱性の詳細を Issue に書く=世界中に公開 →
修正前に攻撃者に悪用される GitHub 活用セミナー © 2026 17
Security Report を使う GitHub の Security Advisory 機能 Security →
Report a vulnerability から非公開で報告できる 報告すべき内容 脆弱性の種類(XSS, SQLインジェクション 等) 再現手順(PoC) 影響範囲(Scope) 可能であれば修正案 流れ 非公開で報告 → 開発者と非公開で議論 → 修正完了 → CVE 発行 → 公開 これを Coordinated Disclosure(協調的開示) という GitHub 活用セミナー © 2026 18
まとめ テーマ 要点 Git の基本 commit / push / pull
でチーム開発を安全に ブランチ戦略 main への直 push 禁止・GitHub Flow .gitignore シークレットは絶対にpushしない Branch Protection ルールは機能で強制する PR・レビュー 小さく出して・丁寧に議論する Sign Commit GPG署名でなりすましを防ぐ 脆弱性報告 Issue ではなく Security Report へ GitHub 活用セミナー © 2026 19
参考リンク GitHub Docs GitHub Flow About secret scanning Managing GPG
keys Private security advisories GitHub 活用セミナー © 2026 20
Q&A ご質問はありますか? GitHub 活用セミナー © 2026 21