`trailer.separators`::
	This option tells which characters are recognized as trailer
	separators. By default only `:` is recognized as a trailer
	separator, except that `=` is always accepted on the command
	line for compatibility with other git commands.
+
The first character given by this option will be the default character
used when another separator is not specified in the config for this
trailer.
+
For example, if the value for this option is `%=$`, then only lines
using the format _<key><sep><value>_ with _<sep>_ containing `%`, `=`
or `$` and then spaces will be considered trailers. And `%` will be
the default separator used, so by default trailers will appear like:
`<key>% <value>` (one percent sign and one space will appear between
the key and the value).

`trailer.where`::
	This option tells where a new trailer will be added.
+
This can be `end`, which is the default, `start`, `after` or `before`.
+
If it is `end`, then each new trailer will appear at the end of the
existing trailers.
+
If it is `start`, then each new trailer will appear at the start,
instead of the end, of the existing trailers.
+
If it is `after`, then each new trailer will appear just after the
last trailer with the same _<key>_.
+
If it is `before`, then each new trailer will appear just before the
first trailer with the same _<key>_.

`trailer.ifexists`::
	This option makes it possible to choose what action will be
	performed when there is already at least one trailer with the
	same _<key>_ in the input.
+
The valid values for this option are: `addIfDifferentNeighbor` (this
is the default), `addIfDifferent`, `add`, `replace` or `doNothing`.
+
With `addIfDifferentNeighbor`, a new trailer will be added only if no
trailer with the same (_<key>_, _<value>_) pair is above or below the line
where the new trailer will be added.
+
With `addIfDifferent`, a new trailer will be added only if no trailer
with the same (_<key>_, _<value>_) pair is already in the input.
+
With `add`, a new trailer will be added, even if some trailers with
the same (_<key>_, _<value>_) pair are already in the input.
+
With `replace`, an existing trailer with the same _<key>_ will be
deleted and the new trailer will be added. The deleted trailer will be
the closest one (with the same _<key>_) to the place where the new one
will be added.
+
With `doNothing`, nothing will be done; that is no new trailer will be
added if there is already one with the same _<key>_ in the input.

`trailer.ifmissing`::
	This option makes it possible to choose what action will be
	performed when there is not yet any trailer with the same
	_<key>_ in the input.
+
The valid values for this option are: `add` (this is the default) and
`doNothing`.
+
With `add`, a new trailer will be added.
+
With `doNothing`, nothing will be done.

`trailer.<key-alias>.key`::
	Defines a _<key-alias>_ for the _<key>_. The _<key-alias>_ must be a
	prefix (case does not matter) of the _<key>_. For example, in `git
	config trailer.ack.key "Acked-by"` the `Acked-by` is the _<key>_ and
	the `ack` is the _<key-alias>_. This configuration allows the shorter
	`--trailer "ack:..."` invocation on the command line using the "ack"
	`<key-alias>` instead of the longer `--trailer "Acked-by:..."`.
+
At the end of the _<key>_, a separator can appear and then some
space characters. By default the only valid separator is `:`,
but this can be changed using the `trailer.separators` config
variable.
+
If there is a separator in the key, then it overrides the default
separator when adding the trailer.

`trailer.<key-alias>.where`::
	This option takes the same values as the `trailer.where`
	configuration variable and it overrides what is specified by
	that option for trailers with the specified _<key-alias>_.

`trailer.<key-alias>.ifexists`::
	This option takes the same values as the `trailer.ifexists`
	configuration variable and it overrides what is specified by
	that option for trailers with the specified _<key-alias>_.

`trailer.<key-alias>.ifmissing`::
	This option takes the same values as the `trailer.ifmissing`
	configuration variable and it overrides what is specified by
	that option for trailers with the specified _<key-alias>_.

`trailer.<key-alias>.command`::
	Deprecated in favor of `trailer.<key-alias>.cmd`.
	This option behaves in the same way as `trailer.<key-alias>.cmd`, except
	that it doesn't pass anything as argument to the specified command.
	Instead the first occurrence of substring `$ARG` is replaced by the
	_<value>_ that would be passed as argument.
+
Note that `$ARG` in the user's command is
only replaced once and that the original way of replacing `$ARG` is not safe.
+
When both `trailer.<key-alias>.cmd` and `trailer.<key-alias>.command` are given
for the same _<key-alias>_, `trailer.<key-alias>.cmd` is used and
`trailer.<key-alias>.command` is ignored.

`trailer.<key-alias>.cmd`::
	This option can be used to specify a shell command that will be called
	once to automatically add a trailer with the specified _<key-alias>_, and then
	called each time a `--trailer <key-alias>=<value>` argument is specified to
	modify the _<value>_ of the trailer that this option would produce.
+
When the specified command is first called to add a trailer
with the specified _<key-alias>_, the behavior is as if a special
`--trailer <key-alias>=<value>` argument was added at the beginning
of linkgit:git-interpret-trailers[1], where _<value>_ is taken to be the
standard output of the command with any leading and trailing whitespace
trimmed off.
+
If some `--trailer <key-alias>=<value>` arguments are also passed
on the command line, the command is called again once for each
of these arguments with the same _<key-alias>_. And the _<value>_ part
of these arguments, if any, will be passed to the command as its
first argument. This way the command can produce a _<value>_ computed
from the _<value>_ passed in the `--trailer <key-alias>=<value>`
argument.
