Manual

Fill Tool

Fill Tool allows to fill layer regions with color
hotkey: G

Tool Options
Layers reference - there are a few options available when it comes to which layer to sample/use as a reference for fill.
All Layers: reference canvas view as it appears.
Top Visible: reference only the top most layer that is visible.
e.g. a layer with line art on it.
Current Layer: by default, current layer will be referenced, when the other two options are unchecked.

Direct / Spree option allows to choose whether to fill to spree(default), or directly to layer(when enabled).
Using direct to layer approach also yields ability to replace color of the region, retaining transparency.
Another use case would be making a graduated color effect by using a selection with feathered/transparent edges.
More on Selection here
Spree - when filling to spree, can toggle brush spree erase mode, by pressing X key or clicking on spree indicator. This will allow to retouch/erase filled region with a brush tool.
More on Spree here
More on Brush Tool here

Tolerance - samples existing colors on canvas in order to decide whether to fill them. Color difference (0-255) per each channel separately.
Opacity Barrier - samples existing colors on canvas in alpha (transparency) channel. Fill tool is able to fill in under partially transparent pixels. Opacity Barrier (0-100%) tells the tool how much opacity in percentages to count as a boundary for fill.
e.g. 100% means fill everything to the border of fully opaque pixels.

Selection with Fill Tool
Using the Spree to selection feature, it is possible to create selections with Fill Tool.
To do so, make sure 'Direct' option is disabled. After filling a region, you may want to adjust it with a brush, and after you are done
press Ctrl+B or Select->Spree to selection.
This method is useful, in comparison to Auto Select Tool, in a way that tolerance options are different between the two, and also the ability to retouch region with a brush.
More on Auto Select Tool here

note: another way is to use fill on a separate layer and then make selection from layer instead of Spree to selection.
More on Selection here