Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Git

[git] says which branch conversations start from, how generated branch names are prefixed, and how commits are attributed (Branches).

[git]
base_branch = "main"
KeyMeaningDefault
base_branchThe branch new conversations start from: a local branch (main) or a remote-tracking one (origin/main). Written onto a conversation at its first turn, then kept.unset: asked
branch_prefixPut before every generated branch name. Empty, or one or more branch name parts each ending in / (team/heph/). A name you give with /branch is used as you give it.heph/
attributionA trailer added to every commit heph makes, placed where your trailer.* configuration says. Not added again when the message already has it. Empty means none.none

The project file's value wins for each key it sets. base_branch belongs in the project file: a project's default branch is a fact about the project, and the team that checks in .heph/config.toml shares it.

Branch name prefix

Generated names default to heph/wrap-lines. Set a different prefix in either config file:

[git]
branch_prefix = "team/"

This produces names such as team/wrap-lines. A nonempty prefix must end in / and contain valid git branch name components; nested prefixes such as users/jb/ work too. To disable the prefix:

[git]
branch_prefix = ""

This produces names such as wrap-lines. An empty project value also overrides a nonempty user value; omitting the key keeps the user's setting, or the heph/ default if neither file sets it.

The prefix applies only when heph generates a new branch name. It does not rename a branch already chosen for a conversation, and /branch fix/pager-wrap uses exactly fix/pager-wrap, regardless of the configured prefix. Collision suffixes (-2, -3, ...) still apply with any prefix, including none.

An unknown key in [git] is an error, as in every section heph reads.