Lusyの開発では、原則として以下の流れを使用します。
main
↓
Branch作成
↓
開発
↓
Commit
↓
Push
↓
Pull Request
↓
Review
↓
Merge
NG:
git switch main
# ここで大量にコードを書く作業するときは必ずBranchを作ります。
git switch main
git pull
git switch -c feature/example原則として、
作業Branch → Pull Request → Review → main
という流れで変更します。
実務のRepositoryでは、多くの場合 Branch Protection が設定されており、
main への直接Pushを試すとGitHubが以下のように拒否します。
! [remote rejected] main -> main (protected branch hook declined)
⚠️ このTraining Repositoryでは、Branch Protectionが有効になっていません。 Private RepositoryかつGitHub Freeプランのため、現時点では設定できないためです。 つまりmainへ直接Pushすると 成功してしまいます。絶対に試さないでください。 ここはGitHubが守ってくれない状態です。 誤ってPushしてしまった場合は、自分で
resetやrevertを試す前に管理者へ報告してください。管理者向けの有効化手順は admin-setup.md にあります。
良い例:
feature/login
fix/login-validation
docs/setup-guide
悪い例:
feature/everything
ログイン機能、DB変更、UI変更、README修正などを全部1つに混ぜないようにします。
悪い例:
いろいろ変更
良い例:
Add login API
Add email validation
Fix login error handling
最低でも、
git status
git diffを確認してからCommitしてください。意図していないファイルが混ざっていないか確認します。
以下はGitHubへPushしてはいけません。
- Password
- API Key
- Access Token
- Private Key
.env- AWS Credential
- Database Password
- 個人情報
- その他のSecret
例:
.env
.env.local
credentials.json
private.key
などは .gitignore に追加します。
一度GitへCommitしたSecretは、ファイルを削除しただけではGit履歴に残ります。 「消したから大丈夫」ではありません。漏らしてしまった場合は、まずそのKey/Tokenを 無効化(rotate) してください。
このRepositoryのCIは、
members/とconflict-training/にSecretらしき文字列や.envなどの禁止ファイルが含まれていないかを自動でチェックします。 Pull Requestで赤いバツが出たら、CIのログを読んで直してからもう一度Pushしてください。 CIが落ちたPull Requestはマージしません。 これは実務と同じルールです。
次: 03 Setup