summaryrefslogtreecommitdiffstats
path: root/docs/configuration.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/configuration.md')
-rw-r--r--docs/configuration.md482
1 files changed, 339 insertions, 143 deletions
diff --git a/docs/configuration.md b/docs/configuration.md
index 641b361..af49d7c 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -1,21 +1,21 @@
# Configuration
Gitlint can be configured through different means.
-# Config files #
-You can modify gitlint's behavior by adding a ```.gitlint``` file to your git repository.
+## The .gitlint file
+You can modify gitlint's behavior by adding a `.gitlint` file to your git repository.
-Generate a default ```.gitlint``` config file by running:
-```bash
+Generate a default `.gitlint` config file by running:
+```sh
gitlint generate-config
```
You can also use a different config file like so:
-```bash
-gitlint --config myconfigfile.ini
+```sh
+gitlint --config myconfigfile.ini
```
-The block below shows a sample ```.gitlint``` file. Details about rule config options can be found on the
-[Rules](rules.md) page, details about the ```[general]``` section can be found in the
+The block below shows a sample `.gitlint` file. Details about rule config options can be found on the
+[Rules](rules.md) page, details about the `[general]` section can be found in the
[General Configuration](configuration.md#general-configuration) section of this page.
```ini
@@ -25,7 +25,7 @@ The block below shows a sample ```.gitlint``` file. Details about rule config op
# one rule and each key in it is an option for that specific rule.
#
# Rules and sections can be referenced by their full name or by id. For example
-# section "[body-max-line-length]" could be written as "[B1]". Full section names are
+# section "[body-max-line-length]" could also be written as "[B1]". Full section names are
# used in here for clarity.
# Rule reference documentation: http://jorisroovers.github.io/gitlint/rules/
#
@@ -39,19 +39,31 @@ ignore=title-trailing-punctuation, T3
# precedence over this
verbosity = 2
-# By default gitlint will ignore merge, revert, fixup and squash commits.
+# By default gitlint will ignore merge, revert, fixup, fixup=amend, and squash commits.
ignore-merge-commits=true
ignore-revert-commits=true
ignore-fixup-commits=true
+ignore-fixup-amend-commits=true
ignore-squash-commits=true
-# Ignore any data send to gitlint via stdin
+# Ignore any data sent to gitlint via stdin
ignore-stdin=true
-# Fetch additional meta-data from the local repository when manually passing a
+# Fetch additional meta-data from the local repository when manually passing a
# commit message to gitlint via stdin or --commit-msg. Disabled by default.
staged=true
+# Hard fail when the target commit range is empty. Note that gitlint will
+# already fail by default on invalid commit ranges. This option is specifically
+# to tell gitlint to fail on *valid but empty* commit ranges.
+# Disabled by default.
+fail-without-commits=true
+
+# Whether to use Python `search` instead of `match` semantics in rules that use
+# regexes. Context: https://github.com/jorisroovers/gitlint/issues/254
+# Disabled by default, but will be enabled by default in the future.
+regex-style-search=true
+
# Enable debug mode (prints more output). Disabled by default.
debug=true
@@ -68,6 +80,11 @@ extra-path=examples/
[title-max-length]
line-length=80
+# Conversely, you can also enforce minimal length of a title with the
+# "title-min-length" rule:
+[title-min-length]
+min-length=5
+
[title-must-not-contain-word]
# Comma-separated list of words that should not occur in the title. Matching is case
# insensitive. It's fine if the keyword occurs as part of a larger word (so "WIPING"
@@ -75,7 +92,7 @@ line-length=80
words=wip
[title-match-regex]
-# python like regex (https://docs.python.org/2/library/re.html) that the
+# python like regex (https://docs.python.org/3/library/re.html) that the
# commit-msg title must be matched to.
# Note that the regex can contradict with other rules if not used correctly
# (e.g. title-must-not-contain-word).
@@ -95,14 +112,20 @@ ignore-merge-commits=false
[body-changed-file-mention]
# List of files that need to be explicitly mentioned in the body when they are changed
# This is useful for when developers often erroneously edit certain files or git submodules.
-# By specifying this rule, developers can only change the file when they explicitly reference
-# it in the commit message.
-files=gitlint/rules.py,README.md
+# By specifying this rule, developers can only change the file when they explicitly
+# reference it in the commit message.
+files=gitlint-core/gitlint/rules.py,README.md
+
+[body-match-regex]
+# python-style regex that the commit-msg body must match.
+# E.g. body must end in My-Commit-Tag: foo
+regex=My-Commit-Tag: foo$
[author-valid-email]
-# python like regex (https://docs.python.org/2/library/re.html) that the
+# python like regex (https://docs.python.org/3/library/re.html) that the
# commit author email address should be matched to
-# For example, use the following regex if you only want to allow email addresses from foo.com
+# E.g.: For example, use the following regex if you only want to allow email
+# addresses from foo.com
regex=[^@]+@foo.com
[ignore-by-title]
@@ -117,12 +140,26 @@ ignore=T1,body-min-length
[ignore-by-body]
# Ignore certain rules for commits of which the body has a line that matches a regex
# E.g. Match bodies that have a line that that contain "release"
-# regex=(.*)release(.*)
+regex=(.*)release(.*)
#
# Ignore certain rules, you can reference them by their id or by their full name
# Use 'all' to ignore all rules
ignore=T1,body-min-length
+[ignore-body-lines]
+# Ignore certain lines in a commit body that match a regex.
+# E.g. Ignore all lines that start with 'Co-Authored-By'
+regex=^Co-Authored-By
+
+[ignore-by-author-name]
+# Ignore certain rules for commits of which the author name matches a regex
+# E.g. Match commits made by dependabot
+regex=(.*)dependabot(.*)
+
+# Ignore certain rules, you can reference them by their id or by their full name
+# Use 'all' to ignore all rules
+ignore=T1,body-min-length
+
# This is a contrib rule - a community contributed rule. These are disabled by default.
# You need to explicitly enable them one-by-one by adding them to the "contrib" option
# under [general] section above.
@@ -131,20 +168,20 @@ ignore=T1,body-min-length
types = bugfix,user-story,epic
```
-# Commandline config #
+## Commandline config
-You can also use one or more ```-c``` flags like so:
+You can also use one or more `-c` flags like so:
```
$ gitlint -c general.verbosity=2 -c title-max-length.line-length=80 -c B1.line-length=100
```
-The generic config flag format is ```-c <rule>.<option>=<value>``` and supports all the same rules and options which
-you can also use in a ```.gitlint``` config file.
+The generic config flag format is `-c <rule>.<option>=<value>` and supports all the same rules and options which
+you can also use in a `.gitlint` config file.
-# Commit specific config #
+## Commit specific config
You can also configure gitlint by adding specific lines to your commit message.
-For now, we only support ignoring commits by adding ```gitlint-ignore: all``` to the commit
+For now, we only support ignoring commits by adding `gitlint-ignore: all` to the commit
message like so:
```
@@ -154,9 +191,9 @@ I want gitlint to ignore this entire commit message.
gitlint-ignore: all
```
-```gitlint-ignore: all``` can occur on any line, as long as it is at the start of the line.
+`gitlint-ignore: all` can occur on any line, as long as it is at the start of the line.
-You can also specify specific rules to be ignored as follows:
+You can also specify specific rules to be ignored as follows:
```
WIP: This is my commit message
@@ -166,44 +203,47 @@ gitlint-ignore: T1, body-hard-tab
-# Configuration precedence #
+## Configuration precedence
gitlint configuration is applied in the following order of precedence:
-1. Commit specific config (e.g.: ```gitlint-ignore: all``` in the commit message)
-2. Configuration Rules (e.g.: [ignore-by-title](/rules/#i1-ignore-by-title))
-3. Commandline convenience flags (e.g.: ```-vv```, ```--silent```, ```--ignore```)
-4. Commandline configuration flags (e.g.: ```-c title-max-length=123```)
-5. Configuration file (local ```.gitlint``` file, or file specified using ```-C```/```--config```)
-6. Default gitlint config
+1. Commit specific config (e.g.: `gitlint-ignore: all` in the commit message)
+2. Configuration Rules (e.g.: [ignore-by-title](rules.md#i1-ignore-by-title))
+3. Commandline convenience flags (e.g.: `-vv`, `--silent`, `--ignore`)
+4. Environment variables (e.g.: `GITLINT_VERBOSITY=3`)
+5. Commandline configuration flags (e.g.: `-c title-max-length=123`)
+6. Configuration file (local `.gitlint` file, or file specified using `-C`/`--config`)
+7. Default gitlint config
-# General Options
+## General Options
Below we outline all configuration options that modify gitlint's overall behavior. These options can be specified
-using commandline flags or in ```[general]``` section in a ```.gitlint``` configuration file.
+using commandline flags or in `[general]` section in a `.gitlint` configuration file.
-## silent
+### silent
Enable silent mode (no output). Use [exit](index.md#exit-codes) code to determine result.
-Default value | gitlint version | commandline flag
----------------|------------------|-------------------
- false | >= 0.1.0 | ```--silent```
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| `False` | >= 0.1.0 | `--silent` | `GITLINT_SILENT` |
-### Examples
+#### Examples
```sh
# CLI
gitlint --silent
+GITLINT_SILENT=1 gitlint # using env variable
```
+------------------------------------------------------------------------------------------------------------------------
-## verbosity
+### verbosity
Amount of output gitlint will show when printing errors.
-Default value | gitlint version | commandline flag
----------------|------------------|-------------------
- 3 | >= 0.1.0 | `-v`
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| 3 | >= 0.1.0 | `-v` | `GITLINT_VERBOSITY` |
-### Examples
+#### Examples
```sh
# CLI
gitlint -vvv # default (level 3)
@@ -212,221 +252,377 @@ gitlint -v # even less (level 1)
gitlint --silent # no output (level 0)
gitlint -c general.verbosity=1 # Set specific level
gitlint -c general.verbosity=0 # Same as --silent
+GITLINT_VERBOSITY=2 gitlint # using env variable
```
```ini
-.gitlint
+# .gitlint
[general]
verbosity=2
```
+------------------------------------------------------------------------------------------------------------------------
-## ignore-merge-commits
+### ignore
-Whether or not to ignore merge commits.
+Comma separated list of rules to ignore (by name or id).
-Default value | gitlint version | commandline flag
----------------|------------------|-------------------
- true | >= 0.7.0 | Not Available
+| Default value | gitlint version | commandline flag | environment variable |
+| ---------------- | --------------- | ---------------- | -------------------- |
+| [] (=empty list) | >= 0.1.0 | `--ignore` | `GITLINT_IGNORE` |
-### Examples
+#### Examples
```sh
# CLI
-gitlint -c general.ignore-merge-commits=false
+gitlint --ignore=body-min-length # ignore single rule
+gitlint --ignore=T1,body-min-length # ignore multiple rule
+gitlint -c general.ignore=T1,body-min-length # different way of doing the same
+GITLINT_IGNORE=T1,body-min-length gitlint # using env variable
```
```ini
#.gitlint
[general]
-ignore-merge-commits=false
+ignore=T1,body-min-length
```
+------------------------------------------------------------------------------------------------------------------------
-## ignore-revert-commits
+### debug
-Whether or not to ignore revert commits.
+Enable debugging output.
-Default value | gitlint version | commandline flag
----------------|------------------|-------------------
- true | >= 0.13.0 | Not Available
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| false | >= 0.7.1 | `--debug` | `GITLINT_DEBUG` |
-### Examples
+#### Examples
```sh
# CLI
-gitlint -c general.ignore-revert-commits=false
+gitlint --debug
+GITLINT_DEBUG=1 gitlint # using env variable
+# --debug is special, the following does NOT work
+# gitlint -c general.debug=true
+```
+------------------------------------------------------------------------------------------------------------------------
+
+### target
+
+Target git repository gitlint should be linting against.
+
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| (empty) | >= 0.8.0 | `--target` | `GITLINT_TARGET` |
+
+#### Examples
+```sh
+# CLI
+gitlint --target=/home/joe/myrepo/
+gitlint -c general.target=/home/joe/myrepo/ # different way of doing the same
+GITLINT_TARGET=/home/joe/myrepo/ gitlint # using env variable
```
```ini
#.gitlint
[general]
-ignore-revert-commits=false
+target=/home/joe/myrepo/
```
+------------------------------------------------------------------------------------------------------------------------
-## ignore-fixup-commits
+### config
-Whether or not to ignore [fixup](https://git-scm.com/docs/git-commit#git-commit---fixupltcommitgt) commits.
+Path where gitlint looks for a config file.
+
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| `.gitlint` | >= 0.1.0 | `--config` | `GITLINT_CONFIG` |
+
+#### Examples
+```sh
+gitlint --config=/home/joe/gitlint.ini
+gitlint -C /home/joe/gitlint.ini # different way of doing the same
+GITLINT_CONFIG=/home/joe/gitlint.ini # using env variable
+```
+------------------------------------------------------------------------------------------------------------------------
+
+### extra-path
+
+Path where gitlint looks for [user-defined rules](user_defined_rules.md).
-Default value | gitlint version | commandline flag
----------------|------------------|-------------------
- true | >= 0.9.0 | Not Available
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| (empty) | >= 0.8.0 | `--extra-path` | `GITLINT_EXTRA_PATH` |
-### Examples
+#### Examples
```sh
# CLI
-gitlint -c general.ignore-fixup-commits=false
+gitlint --extra-path=/home/joe/rules/
+gitlint -c general.extra-path=/home/joe/rules/ # different way of doing the same
+GITLINT_EXTRA_PATH=/home/joe/rules/ gitlint # using env variable
```
```ini
#.gitlint
[general]
-ignore-fixup-commits=false
+extra-path=/home/joe/rules/
```
+------------------------------------------------------------------------------------------------------------------------
+### contrib
-## ignore-squash-commits
+Comma-separated list of [Contrib rules](contrib_rules.md) to enable (by name or id).
-Whether or not to ignore [squash](https://git-scm.com/docs/git-commit#git-commit---squashltcommitgt) commits.
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| (empty) | >= 0.12.0 | `--contrib` | `GITLINT_CONTRIB` |
-Default value | gitlint version | commandline flag
----------------|------------------|-------------------
- true | >= 0.9.0 | Not Available
+#### Examples
+```sh
+# CLI
+gitlint --contrib=contrib-title-conventional-commits,CC1
+# different way of doing the same
+gitlint -c general.contrib=contrib-title-conventional-commits,CC1
+# using env variable
+GITLINT_CONTRIB=contrib-title-conventional-commits,CC1 gitlint
+```
+```ini
+#.gitlint
+[general]
+contrib=contrib-title-conventional-commits,CC1
+```
+------------------------------------------------------------------------------------------------------------------------
+
+### staged
+
+Attempt smart guesses about meta info (like author name, email, branch, changed files, etc) when manually passing a
+commit message to gitlint via stdin or `--commit-msg`.
+
+Since in such cases no actual git commit exists (yet) for the message being linted, gitlint
+needs to apply some heuristics (like checking `git config` and any staged changes) to make a smart guess about what the
+likely author name, email, commit date, changed files and branch of the ensuing commit would be.
-### Examples
+When not using the `--staged` flag while linting a commit message via stdin or `--commit-msg`, gitlint will only have
+access to the commit message itself for linting and won't be able to enforce rules like
+[M1:author-valid-email](rules.md#m1-author-valid-email).
+
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| false | >= 0.13.0 | `--staged` | `GITLINT_STAGED` |
+
+#### Examples
```sh
# CLI
-gitlint -c general.ignore-squash-commits=false
+gitlint --staged
+gitlint -c general.staged=true # different way of doing the same
+GITLINT_STAGED=1 gitlint # using env variable
```
```ini
#.gitlint
[general]
-ignore-squash-commits=false
+staged=true
```
+------------------------------------------------------------------------------------------------------------------------
-## ignore
+### fail-without-commits
-Comma separated list of rules to ignore (by name or id).
+Hard fail when the target commit range is empty. Note that gitlint will
+already fail by default on invalid commit ranges. This option is specifically
+to tell gitlint to fail on **valid but empty** commit ranges.
-Default value | gitlint version | commandline flag
----------------------------|------------------|-------------------
- [] (=empty list) | >= 0.1.0 | `--ignore`
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ------------------------ | ------------------------------ |
+| false | >= 0.15.2 | `--fail-without-commits` | `GITLINT_FAIL_WITHOUT_COMMITS` |
-### Examples
+#### Examples
```sh
# CLI
-gitlint --ignore=body-min-length # ignore single rule
-gitlint --ignore=T1,body-min-length # ignore multiple rule
-gitlint -c general.ignore=T1,body-min-length # different way of doing the same
+# The following will cause gitlint to hard fail (i.e. exit code > 0)
+# since HEAD..HEAD is a valid but empty commit range.
+gitlint --fail-without-commits --commits HEAD..HEAD
+GITLINT_FAIL_WITHOUT_COMMITS=1 gitlint # using env variable
```
```ini
#.gitlint
[general]
-ignore=T1,body-min-length
+fail-without-commits=true
```
-## debug
+---
+### regex-style-search
+
+Whether to use Python `re.search()` instead of `re.match()` semantics in all built-in rules that use regular expressions.
+
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| false | >= 0.18.0 | Not Available | Not Available |
+
+!!! important
+ At this time, `regex-style-search` is **disabled** by default, but it will be **enabled** by default in the future.
+
+
+
+Gitlint will log a warning when you're using a rule that uses a custom regex and this option is not enabled:
+
+```plain
+WARNING: I1 - ignore-by-title: gitlint will be switching from using Python regex 'match' (match beginning) to
+'search' (match anywhere) semantics. Please review your ignore-by-title.regex option accordingly.
+To remove this warning, set general.regex-style-search=True.
+More details: https://jorisroovers.github.io/gitlint/configuration/#regex-style-search
+```
+
+*If you don't have any custom regex specified, gitlint will not log a warning and no action is needed.*
+
+**To remove the warning:**
+
+1. Review your regex in the rules gitlint warned for and ensure it's still accurate when using [`re.search()` semantics](https://docs.python.org/3/library/re.html#search-vs-match).
+2. Enable `regex-style-search` in your `.gitlint` file (or using [any other way to configure gitlint](http://127.0.0.1:8000/gitlint/configuration/)):
+
+```ini
+[general]
+regex-style-search=true
+```
+
+#### More context
+Python offers [two different primitive operations based on regular expressions](https://docs.python.org/3/library/re.html#search-vs-match):
+`re.match()` checks for a match only at the beginning of the string, while `re.search()` checks for a match anywhere
+in the string.
-Enable debugging output.
-Default value | gitlint version | commandline flag
----------------|------------------|-------------------
- false | >= 0.7.1 | `--debug`
-### Examples
+Most rules in gitlint already use `re.search()` instead of `re.match()`, but there's a few notable exceptions that
+use `re.match()`, which can lead to unexpected matching behavior.
+
+- M1 - author-valid-email
+- I1 - ignore-by-title
+- I2 - ignore-by-body
+- I3 - ignore-body-lines
+- I4 - ignore-by-author-name
+
+The `regex-style-search` option is meant to fix this inconsistency. Setting it to `true` will force the above rules to
+use `re.search()` instead of `re.match()`. For detailed context, see [issue #254](https://github.com/jorisroovers/gitlint/issues/254).
+
+
+#### Examples
```sh
# CLI
-gitlint --debug
-# --debug is special, the following does NOT work
-# gitlint -c general.debug=true
+gitlint -c general.regex-style-search=true
+```
+```ini
+#.gitlint
+[general]
+regex-style-search=true
```
+------------------------------------------------------------------------------------------------------------------------
+### ignore-stdin
-## target
+Ignore any stdin data. Sometimes useful when running gitlint in a CI server.
-Target git repository gitlint should be linting against.
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | ---------------------- |
+| false | >= 0.12.0 | `--ignore-stdin` | `GITLINT_IGNORE_STDIN` |
+
+#### Examples
+```sh
+# CLI
+gitlint --ignore-stdin
+gitlint -c general.ignore-stdin=true # different way of doing the same
+GITLINT_IGNORE_STDIN=1 gitlint # using env variable
+```
+```ini
+#.gitlint
+[general]
+ignore-stdin=true
+```
+------------------------------------------------------------------------------------------------------------------------
+
+### ignore-merge-commits
-Default value | gitlint version | commandline flag
----------------------------|------------------|-------------------
- (empty) | >= 0.8.0 | `--target`
+Whether or not to ignore merge commits.
-### Examples
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| true | >= 0.7.0 | Not Available | Not Available |
+
+#### Examples
```sh
# CLI
-gitlint --target=/home/joe/myrepo/
-gitlint -c general.target=/home/joe/myrepo/ # different way of doing the same
+gitlint -c general.ignore-merge-commits=false
```
```ini
#.gitlint
[general]
-target=/home/joe/myrepo/
+ignore-merge-commits=false
```
+------------------------------------------------------------------------------------------------------------------------
-## extra-path
+### ignore-revert-commits
-Path where gitlint looks for [user-defined rules](user_defined_rules.md).
+Whether or not to ignore revert commits.
-Default value | gitlint version | commandline flag
----------------------------|------------------|-------------------
- (empty) | >= 0.8.0 | `--extra-path`
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| true | >= 0.13.0 | Not Available | Not Available |
-### Examples
+#### Examples
```sh
# CLI
-gitlint --extra-path=/home/joe/rules/
-gitlint -c general.extra-path=/home/joe/rules/ # different way of doing the same
+gitlint -c general.ignore-revert-commits=false
```
```ini
#.gitlint
[general]
-extra-path=/home/joe/rules/
+ignore-revert-commits=false
```
+------------------------------------------------------------------------------------------------------------------------
-## contrib
+### ignore-fixup-commits
-[Contrib rules](contrib_rules) to enable.
+Whether or not to ignore [fixup](https://git-scm.com/docs/git-commit#git-commit---fixupltcommitgt) commits.
-Default value | gitlint version | commandline flag
----------------------------|------------------|-------------------
- (empty) | >= 0.12.0 | `--contrib`
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| true | >= 0.9.0 | Not Available | Not Available |
-### Examples
+#### Examples
```sh
# CLI
-gitlint --contrib=contrib-title-conventional-commits,CC1
-gitlint -c general.contrib=contrib-title-conventional-commits,CC1 # different way of doing the same
+gitlint -c general.ignore-fixup-commits=false
```
```ini
#.gitlint
[general]
-contrib=contrib-title-conventional-commits,CC1
+ignore-fixup-commits=false
```
-## ignore-stdin
+------------------------------------------------------------------------------------------------------------------------
-Ignore any stdin data. Sometimes useful when running gitlint in a CI server.
+### ignore-fixup-amend-commits
+
+Whether or not to ignore [fixup=amend](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupamendrewordltcommitgt) commits.
-Default value | gitlint version | commandline flag
----------------|------------------|-------------------
- false | >= 0.12.0 | `--ignore-stdin`
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| true | >= 0.18.0 | Not Available | Not Available |
-### Examples
+#### Examples
```sh
# CLI
-gitlint --ignore-stdin
-gitlint -c general.ignore-stdin=true # different way of doing the same
+gitlint -c general.ignore-fixup-amend-commits=false
```
```ini
#.gitlint
[general]
-ignore-stdin=true
+ignore-fixup-amend-commits=false
```
+------------------------------------------------------------------------------------------------------------------------
-## staged
+### ignore-squash-commits
-Fetch additional meta-data from the local `repository when manually passing a commit message to gitlint via stdin or ```--commit-msg```.
+Whether or not to ignore [squash](https://git-scm.com/docs/git-commit#git-commit---squashltcommitgt) commits.
-Default value | gitlint version | commandline flag
----------------|------------------|-------------------
- false | >= 0.13.0 | `--staged`
+| Default value | gitlint version | commandline flag | environment variable |
+| ------------- | --------------- | ---------------- | -------------------- |
+| true | >= 0.9.0 | Not Available | Not Available |
-### Examples
+#### Examples
```sh
# CLI
-gitlint --staged
-gitlint -c general.staged=true # different way of doing the same
+gitlint -c general.ignore-squash-commits=false
```
```ini
#.gitlint
[general]
-staged=true
+ignore-squash-commits=false
``` \ No newline at end of file