Skip to content

Git/GitHub 研修 + Public化の可否判断: tomoyahiroe #7

Closed

Description

@Tivo0921

@tomoyahiroe

このRepository(Lusy Git/GitHub研修)を Public にしてよいかどうか の判断をお願いしたく、Issueを立てました。

判断の前提として、まず研修を一通り実施してください。 教材の中身と、実際にPublicになる成果物(members/ 配下のファイル、Commit履歴、Issue / PRのやりとり)を、受講者と同じ目線で見てもらうためです。


背景 — なぜPublic化を検討しているか

このRepositoryは現在 Private です。そのため Branch Protection が設定できません(GitHub Freeプランでは、Branch ProtectionはPublic Repositoryでのみ利用できるため)。

結果として、いま main は技術的には直接Pushできてしまう状態で、Rule 1・2(mainで直接開発しない / 直接Pushしない)は 文書上のルールとしてのみ 運用しています。研修用Repositoryとしては本末転倒な状態です。

選択肢は docs/admin-setup.md に整理してあるとおり2つです。

方法 影響
A. Public にする 費用なしで即座にBranch Protectionを有効化できる。ただし members/ の内容と全Commit履歴が世界に公開される
B. GitHub Team プランへアップグレード Privateのまま有効化できる。Organization単位の課金が発生する

このIssueで判断してほしいのは、A を選んでよいかどうか です。


Part 1. 研修を実施する

進行表として、以下のチェックリストを上から進めてください。

  • ファイル名に使う名前: tomoya(members/tomoya.md を作成します)
  • Conflict実習のペア番号: 1人で進める場合は Part A のみで完結します

Step 0. 事前準備

👉 手順書を開く: docs/03-setup.md

  • git --version でGit 2.23以上を確認した
  • git config --global user.name を設定した
  • git config --global user.email を設定した(GitHubに登録済みのアドレス)
  • git config --global core.editor を設定した
  • GitHubの認証を通した(gh auth login またはSSH / PAT)

Step 1. 座学(読むだけ・15分)

  • 01 Concepts を読んだ(GitとGitHubの違い / 用語)
  • 02 Rules を読んだ(Lumosの基本ルール6つ)

Step 2. 実習1: CloneからPull Requestまで

👉 手順書を開く: exercises/01-clone-to-pr.md

  • git clone した
  • git status / git branch で現在地を確認した
  • git switch main → git pull でmainを最新化した
  • git switch -c training/<name> でBranchを作成した
  • members/<name>.md を作成した
  • git diff で「新規ファイルは表示されない」ことを確認した
  • git add した
  • git diff --staged で中身を確認した
  • git commit した
  • git log --oneline で履歴を確認した
  • git push -u origin training/<name> した
  • main へ直接Pushしてはいけない理由を理解した(このRepositoryでは実演しません)
  • Pull Requestを作成した(テンプレートを埋めた)
  • CI(Training Check)が緑になった

Step 3. 実習2: Pull Request Review

👉 手順書を開く: exercises/02-review.md

  • 他メンバーのPull RequestをFiles changedで読んだ
  • 行コメントを1件以上書いた
  • Reviewを提出した(Comment / Request changes)
  • 自分が受けた指摘に対して、同じBranchで修正・追加Pushした
  • 指摘コメントに返信し、Resolve conversation した
  • Approveをもらい、自分のPull RequestをMergeした
  • Remoteの作業Branchを削除した(Delete branch)
  • git branch -d で手元のBranchも削除した

Step 4. 実習3: PullとFetch

👉 手順書を開く: exercises/03-pull-fetch.md

  • git fetch の前後で git status の表示が変わることを確認した
  • git log --oneline main..origin/main で取り込む前に差分を見た
  • git branch -a でRemote Branchを確認した
  • git pull して他メンバーのファイルが増えたことを確認した
  • git log --oneline --graph --all でBranchの分岐と合流を見た
  • fetchとpullの違いを自分の言葉で説明できる

Step 5. 実習4: 変更を取り消す

👉 手順書を開く: exercises/04-restore.md

  • git restore <file> で編集内容が消えることを確認した
  • git restore --staged <file> でStagingだけ外れ、編集は残ることを確認した
  • 2つの違いを説明できる

Step 6. 実習5: Stash

👉 手順書を開く: exercises/05-stash.md

  • git stash で変更を退避した
  • 退避中に別Branchへ移動できることを確認した
  • git stash list で一覧を見た
  • git stash pop で変更が戻ることを確認した

Step 7. 実習6: Conflict

👉 手順書を開く: exercises/06-conflict.md

  • Part A: git merge origin/seed/conflict でConflictを発生させた
  • git status を読んで、次にすべきことを自分で判断した
  • Conflict Markerの意味(HEAD側 / 取り込む側)を理解した
  • 手で内容を修正し、マーカーを3本とも削除した
  • git add → git commit --no-edit で解消を完了した
  • git log --oneline --graph --all の出力をこのIssueにコメントで貼った
  • 練習Branchを削除した(Local / Remote 両方)
  • git merge --abort の存在を知った
  • (任意)Part B: ペアでPull Request経由のConflictを解消した

Step 8. 実習7: Commitを取り消す

👉 手順書を開く: exercises/07-undo-commit.md

  • git revert で打ち消しCommitが作られることを確認した
  • git reset --soft HEAD~1 でCommitを取り消し、変更が残ることを確認した
  • git reset --hard HEAD~1 で変更ごと消えることを確認した
  • git reflog から復旧できることを確認した
  • revertとresetの使い分けを説明できる

Step 9. 仕上げ

  • 05 Conventions を読んだ(Commit / Branch / PR / Review の書き方)
  • 06 Troubleshooting を読んだ(危険な操作を把握した)
  • 不要なBranchをすべて削除した(git branch -a で確認)
  • 下の「振り返り」を書いた

Part 2. Public化の可否を判断する

研修を終えたうえで、以下を確認して判断をお願いします。すべてにチェックが付けばPublic化可、1つでも引っかかるなら「条件付き可」または「不可」 として、理由をコメントに残してください。

公開される内容の確認

  • members/ 配下のファイルに、本名・所属先の非公開情報・連絡先などが含まれていない
  • docs/ exercises/ conflict-training/ に、社内固有の情報(内部URL、Slack、顧客名、非公開の運用ルール)が含まれていない
  • Commit履歴(git log -p)に、途中で消したSecretや個人情報が残っていない
  • 既存のIssue / Pull Request(Set CODEOWNERS to actual maintainers #1〜)のやりとりを公開して問題ない
  • CODEOWNERS などに個人のGitHubアカウント名が載ることについて、本人たちの合意が取れている
  • Organization名(Lumos / Lusy)と、この研修の存在自体を公開して差し支えない

Public化に伴って必要になる作業の確認

  • LICENSE を置くかどうかを決める(教材を公開する以上、無しだと第三者からの扱いが曖昧になります)
  • Public化後にBranch Protectionを設定する(設定内容は docs/admin-setup.md に記載済み)
  • Branch Protection有効化に伴う教材側の記述の巻き戻し
  • 今後の受講者に「このRepositoryはPublicである」と事前に周知する導線を用意する

判断

  • 判断をこのIssueにコメントした(Public化可 / 条件付き可(条件を明記) / 不可(理由を明記))

振り返り(研修の最後に記入)

研修部分についての気づきも、あわせて残してもらえると助かります。

  • 一番つまずいたところ:
  • 説明が分かりにくかったページ:
  • まだ不安な操作:

参考

Activity

  1. tomoyahiroe commented on Sep 1, 2026

    @tomoyahiroe
    Member

    @Tivo0921

    このリポジトリには基本的にpublicにしちゃいけないような情報は含まれてなかったです。一部committerのメールアドレスがコミットに含まれていますが、正直気にするほどではないと思う。

    一方で、研修用リポジトリにBranch Protection する必要がどれくらいあるかは自分は正直わかりかねています...

  2. tomoyahiroe commented on Oct 24, 2026

    @tomoyahiroe
    Member

    Lusy に所属していないlumosメンバーのGitHub 練習用にpublic 化します。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

trainingGit/GitHub研修の進行表

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions