]> git.ipfire.org Git - thirdparty/git.git/commit
alias: support non-alphanumeric names via subsection syntax
authorJonatan Holmgren <jonatan@jontes.page>
Wed, 18 Feb 2026 21:57:36 +0000 (22:57 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 19 Feb 2026 18:13:20 +0000 (10:13 -0800)
commitac1f12a9de4b79b176a08f524fecdb092ff00e74
treed0f7e02551c6307e00c7e7a3e23c4f19cb1e8a22
parent2ad33ea6b5c0a5670a757c9b594cc07321324e80
alias: support non-alphanumeric names via subsection syntax

Git alias names are limited to ASCII alphanumeric characters and
dashes because aliases are implemented as config variable names.
This prevents aliases being created in languages using characters outside that range.

Add support for arbitrary alias names by using config subsections:

    [alias "förgrena"]
        command = branch

The subsection name is matched as-is (case-sensitive byte comparison),
while the existing definition without a subsection (e.g.,
"[alias] co = checkout") remains case-insensitive for backward
compatibility. This uses existing config infrastructure since
subsections already support arbitrary bytes, and avoids introducing
Unicode normalization.

Also teach the help subsystem about the new syntax so that "git help
-a" properly lists subsection aliases and the autocorrect feature can
suggest them. Use utf8_strwidth() instead of strlen() for column
alignment so that non-ASCII alias names display correctly.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Jonatan Holmgren <jonatan@jontes.page>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config/alias.adoc
alias.c
help.c
t/t0014-alias.sh