VOOZH about

URL: https://deepwiki.com/invokable/laravel-boost-copilot-cli/7.5-version-control-configuration

⇱ Version Control Configuration | invokable/laravel-boost-copilot-cli | DeepWiki


Loading...
Last indexed: 7 March 2026 (397730)
Menu

Version Control Configuration

This page documents the version control housekeeping files in the repository root: .gitattributes, .gitignore, and .editorconfig. These files govern line-ending normalization, diff rendering, Composer package distribution content, editor behavior, and which local artifacts are excluded from source control.

For documentation on configuration files that control package behavior (such as boost.json, mcp-config.json, or testbench.yaml), see Configuration Files Reference.


.gitattributes

.gitattributes1-18

This file serves two distinct purposes: configuring how Git renders diffs, and controlling which files are excluded from git archive exports (which is what Composer uses when installing a package from source).

Line Ending Normalization

* text=auto

.gitattributes1

All tracked files use Git's automatic line-ending normalization. On checkout, Git converts line endings to the platform's native format; on commit, files are stored with LF. This is the standard setting for cross-platform PHP packages.

Diff Drivers

PatternDiff DriverEffect
*.blade.phphtmlGit uses HTML-aware diff heuristics
*.mdmarkdownGit uses Markdown-aware diff heuristics
*.phpphpGit uses PHP-aware diff heuristics (e.g., function context lines)

.gitattributes3-5

These settings affect git diff and git log -p output locally. They do not affect the files' stored content.

Export-Ignore Rules

The export-ignore attribute excludes paths from git archive output. Because Composer resolves packages using git archive when installing from a VCS source, these rules define the minimal distribution footprint — end users do not receive development-only files.

Diagram: Export-Ignore Rules and Distribution Footprint


Sources: .gitattributes7-17

The excluded paths by category:

CategoryExcluded Paths
CI / GitHub config/.github (workflows, Copilot instructions, MCP config, skills)
Test suite/tests
PHPUnit configphpunit.xml
Package dev toolingpint.json, testbench.yaml, boost.json
Editor config.editorconfig, .gitattributes, .gitignore
AI dev guidelines/.ai
Testbench workbench/workbench

Key points:

  • /.github is excluded, meaning the MCP config, Copilot instructions, and GitHub Actions workflows are not shipped to package consumers. Those files are for the package's own development environment.
  • boost.json is excluded because it is a per-project file generated by boost:install in the consuming application, not a file this package distributes.
  • /workbench contains the Orchestra Testbench application skeleton used during development (see Development Environment Setup) and has no relevance to end users.
  • /.ai contains the developer-facing Copilot guidelines (copilot-cli.blade.php) used only during package development (see Guidelines and Instructions).

Diagram: .gitattributes Rule Scopes


Sources: .gitattributes1-18


.gitignore

.gitignore1-6

Ignored PathReason
/vendorComposer-managed dependencies; never committed
.phpunit.result.cachePHPUnit test result cache; machine-specific
composer.lockNot committed for libraries (only for applications); consumers manage their own lock
.ideaJetBrains IDE project files (PhpStorm, etc.)
build/Build artifacts; generated by local tooling

Note on composer.lock: For Composer packages (as opposed to applications), omitting composer.lock from version control is standard practice. This ensures that consumers of the package test against a range of dependency versions rather than a pinned set.

Sources: .gitignore1-6


.editorconfig

.editorconfig1-13

The .editorconfig file is excluded from Composer distributions (via export-ignore in .gitattributes) and applies only to contributors editing the package source.

ScopeSettingValue
All files ([*])charsetutf-8
All files ([*])end_of_linelf
All files ([*])indent_stylespace
All files ([*])indent_size4
All files ([*])insert_final_newlinetrue
All files ([*])trim_trailing_whitespacetrue
[*.md]trim_trailing_whitespacefalse
[*.{yml,yaml}]indent_size2

.editorconfig1-13

Notable overrides:

  • Markdown files (*.md) disable trim_trailing_whitespace because two trailing spaces are a valid Markdown line-break syntax (<br>).
  • YAML files (*.yml, *.yaml) use 2-space indentation, which is the community standard for YAML (including GitHub Actions workflow files under .github/workflows/).

The 4-space indent and LF line-ending settings align with the Laravel coding style enforced by Laravel Pint (see Code Quality and Formatting).

Sources: .editorconfig1-13