Reads show the from all layers.
--global, --project,
and --local choose where a command writes; project is the default .
What inherits?
A complete named definition comes from one layer. Omitted optional fields use
that resource’s defaults, not fields from a lower layer. For example, a local
selection’s path never inherits a project’s include or exclude patterns.
An empty collection such as
selections: {} adds no overrides; it does not clear
inherited names or defaults. Removing a named override can reveal the lower-layer
definition again.
Share definitions, choose your default
1
Share a definition
Save the selections in project configuration:
gat.yaml (excerpt)
2
Choose your default locally
.gat/gat.yaml (excerpt)
training definition. Project updates to it
apply automatically. A local definition also named training would replace it
completely.
A refers to a named definition.
Adding a selection or remote never chooses a default. Choose explicitly with
gat selection default or
gat remote default, followed by the name. Unknown selection names
and dangling selection defaults are errors. With no default selection, supported
commands select the whole repository.
gat selection is experimental. Use --selection NAME for a single operation,
or supply a complete inline selection with --path, --include, and --exclude.
Named and inline selectors cannot be combined. See Path selection.Update or restore inheritance
Usegat config for general settings, and gat selection, gat remote,
gat route, or gat mount for named resources.
An explicit update preserves omitted fields within the saved definition being
edited. Updates require that definition in the selected scope and reject one
hidden by a higher-priority definition. Use add --local with a complete
definition to create a local override.
Unsetting a default restores inheritance; it does not select an unrestricted
repository:
--path . and no
filters, then choose it as the default. Removing a selection or remote is rejected
if it would leave the effective default dangling.
For general list settings, --clear writes an empty list where allowed;
--unset removes the key and restores inheritance. For example,
gat config git.ignore_patterns --local --unset restores inherited custom
ignore patterns.
Check what is active
See the configuration reference for individual settings.

