Tags make use of the hierarchical structure of outline trees. If a heading has a certain tag, all subheadings will inherit the tag as well. For example, in the list
* Meeting with the French group :work:
** Summary by Frank :boss:notes:
*** TODO Prepare slides for him :action:
the final heading will have the tags ‘:work:’, ‘:boss:’, ‘:notes:’, and ‘:action:’ even though the final heading is not explicitly marked with those tags. You can also set tags that all entries in a file should inherit as if these tags would be defined in a hypothetical level zero that surounds the entire file.
#+FILETAGS: :Peter:Boss:Secret:
To limit tag inheritance to specific tags, or to turn it off entirely, use
the variables org-use-tag-inheritance and
org-tags-exclude-from-inheritance.
When a headline matches during a tags search while tag inheritance is turned
on, all the sublevels in the same tree will (for a simple match form) match
as well1. The list
of matches may then become very long. If you only want to see the first tags
match in a subtree, configure the variable
org-tags-match-list-sublevels (not recommended).
[1] This is only true if the the search does not involve more complex tests including properties (see Property searches).