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
21
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
PHPの命名規則、結局camelCaseとsnake_caseどっちなんだ
tanahiro2010
0
9
Q. 底辺作家でも流行に乗れば舞えますか? A. はい。分析ランキング分析AIを使えば
tanahiro2010
1
56
OSSコミュニティがくれた「人との繋がり」
tanahiro2010
2
380
Serverlessしかなかったので、ブラウザに働いてもらいました
tanahiro2010
1
57
React Hooksを使いこなせ! ――初心者でも簡単。ポートフォリオ開発で実践するReact講座.pdf
tanahiro2010
0
16
SQLインジェクション ――攻撃の仕組みから対策まで
tanahiro2010
0
43
LLM AgentでTRPGを動かしたら、Agentの地獄を(多分)全部見た
tanahiro2010
1
130
だから僕はMarpを使う ――Bokuchiのすゝめ
tanahiro2010
1
23
私にとって便利なもの。個人開発LT
tanahiro2010
2
220
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
410
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
220
Code Review Best Practice
trishagee
74
20k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Chasing Engaging Ingredients in Design
codingconduct
0
270
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
Site-Speed That Sticks
csswizardry
13
1.4k
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