プロジェクト構成から.gitignoreを生成する
言語、Framework、IDE、OSを選択し、既存Ruleと独自Patternを統合した.gitignoreをBrowser内で生成できます。
.gitignore生成ツールを開く結論:Tracked状態を先に確認し、未追跡ならPatternと配置場所を調べる
git ls-files -- pathで出力されるなら追跡済みです。未追跡ならgit check-ignore -v pathで一致したSourceとRuleを調べます。
ToolはGit Repositoryを読み取らないため、追跡状態や実際のMatchは端末で確認します。
git add -fで強制追加したFileもTrackedになるため、Ignore Ruleだけでは外れません。
原因を上から順番に切り分ける
Tracked、Rule、配置階層、後続の!、親子.gitignore、Global Rule、実ファイル名を確認します。
Windowsでは拡張子非表示により.gitignore.txtになっていないかも確認します。
| 確認項目 | 確認内容 | 判断 |
|---|---|---|
| Tracked | git ls-files | 出力ありならIndex対応 |
| Match | git check-ignore -v | Sourceと行番号 |
| Placement | .gitignoreのDirectory | 相対基準 |
| Negation | 後続の!Rule | 順序確認 |
| Filename | .gitignore.txtでない | 拡張子表示 |
.gitignore生成ツールでRuleを作る手順
- 現行RuleをToolへ読み込みます。
- 選択Templateと独自Ruleを確認します。
- 生成結果の競合警告を読みます。
- Repositoryへ配置します。
- git check-ignore -vで実判定します。
Toolの警告は基本的な競合検出です。Git互換Checkerではありません。
診断Command
git status --ignored
git ls-files -- path/to/file
git check-ignore -v --no-index path/to/file
Tracked Fileは.gitignoreへ追加しただけでは外れない
.gitignoreは意図的に追跡しないFileを対象にします。すでにIndexへ登録済みのFileはRuleを追加してもTrackedのままです。Working TreeのFileを残してIndexからだけ外す場合は、対象を限定してgit rm --cachedを使います。
git ls-files -- .env
git rm --cached .env
git status
Directoryなら-rが必要です。広範囲な「git rm -r --cached .」を最初から案内せず、まず対象Pathを明示し、git statusでStagedされた変更を確認します。
git check-ignoreで実際に一致したRuleを調べる
git check-ignore -v path/to/file
git status --ignored
git check-ignore -vは、どのIgnore Sourceの何行目にあるPatternがPathへ一致したかを表示します。Tracked Fileは通常の判定対象外なので、何も出ない場合はgit ls-filesでも追跡状態を確認します。生成ツール内の警告は簡易分析であり、このCommandの代替ではありません。
Patternの記号と記載順を確認する
| Pattern | 意味 | 例 |
|---|---|---|
| * | Slash以外の0文字以上 | *.log |
| ? | Slash以外の任意の1文字 | file?.txt |
| [] | Character Set / Range | file[0-9].txt |
| / | 位置またはDirectoryを限定 | /dist/ |
| ** | 複数階層をまたぐ特別なMatch | **/cache/ |
| ! | 直前までの除外を再Include | !important.log |
| # | 行頭ではComment | # Build outputs |
同じ優先Levelでは最後に一致したPatternが結果を決めます。「*.log」の後に「!important.log」を置く順序には意味があるため、Alphabet順へ安易に並べ替えません。Parent Directory自体を除外すると内部を走査しないため、内側のFileだけを単純な!で戻せない場合があります。
DevelopToolsの.gitignore生成ツールでできること
| 機能 | 現行ツールの仕様 |
|---|---|
| テンプレート | Java、Node.js、React / Next.js、Vue / Nuxt、TypeScript、Python、Django / Flask、C# / .NET、PHP / Laravel、Rust、C / C++、Ruby / Rails、Swift、Android、Unity等 |
| ビルド・IDE・OS | Gradle、Maven、CMake、Terraform、Docker、VS Code、JetBrains、Visual Studio、Eclipse、Vim / Emacs、Windows、macOS、Linux |
| 入力 | 既存.gitignoreを1ファイル読み込み、独自Patternをテキストで追加 |
| 統合 | 既存内容への追加または置換。完全一致するRuleを重複削除し、元の記載順を維持 |
| 警告 | 「*」等の広すぎるRule、絶対Path、同一対象の除外・否定競合、.env・秘密鍵Rule不足 |
| 出力 | 編集可能な結果、Rule数・重複削除数・警告、Copy、ファイル名「.gitignore」でDownload |
| 非対応 | Git互換Pattern Checker、git check-ignore実行、Git操作、Nested .gitignore自動生成、公式Templateとの自動同期 |
| 処理範囲 | 選択内容・既存ファイル・生成結果をBrowser内で処理し、外部へ送信しない |
ツールはRuleのテキストを生成・統合するところまでです。git add、git rm、git commit、git pushは実行しません。生成後は対象Repositoryでgit status、git check-ignore -v、必要に応じてgit ls-filesを実行し、実際のGit判定を確認してください。
Push済みSecretは.gitignoreだけでは解決しない
.env、Password、API Key、Private KeyをCommitまたはPushした後で.gitignoreへ追加しても、過去の履歴やCloneから参照できる可能性が残ります。最初にCredentialをRevokeまたはRotateし、利用先と自動処理を更新します。
- 漏えいしたCredentialを失効・再発行する
- git rm --cachedで今後の追跡を止め、.gitignoreへ適切なPatternを追加する
- 必要性を評価してHistory Rewriteを実施し、CollaboratorやForkも調整する
- .env.example等には値を入れず、必要な変数名だけを共有する
History RewriteはCommit Hash変更、再混入、他の開発者の作業喪失等の副作用があります。「単一Commandで完全削除」と扱わず、GitHub公式手順とTeamの運用に従います。
一次資料でPatternとTemplateを確認する
- Git公式:gitignore Documentation
- Git公式:git rm Documentation
- Git公式:git check-ignore Documentation
- GitHub Docs:Ignoring files
- GitHub公式:github/gitignore templates
- GitHub Docs:Removing sensitive data
Language・Frameworkの生成物はVersionで変わります。DevelopToolsの組み込みTemplateを出発点にし、GitHub公式Template Collectionと利用Frameworkの現在のDocumentationを確認してからRepositoryへ反映してください。
具体例:.envが無視されない原因を確認する
.envを.gitignoreへ追加してもgit statusに残る状況を調べます。
git ls-filesでTrackedと判明したらIndexから外し、その後git check-ignoreで.env Ruleを確認します。
- git status
- git ls-files
- git rm --cached
- git check-ignore -v
- 再度git status
実値を含む.envを表示・共有せず、PathだけをCommandへ渡します。
よくある質問
- .gitignoreを生成するとGitへ自動反映されますか?
- いいえ。Browser内でTextを生成するだけです。Repository Rootへ配置し、git statusとgit check-ignoreで確認してください。
- 選択内容や読み込んだ.gitignoreは外部へ送信されますか?
- 現行ツールはFile読込、統合、警告、Copy、DownloadをBrowser内で処理し、外部APIへ送信しません。
- GitHub公式Templateと完全に同一ですか?
- 完全な自動同期ではありません。組み込みRuleを確認し、GitHub公式TemplateとFramework公式資料の最新版も照合してください。